Login
Buscar
Quem está conectado
Há 18 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 18 Visitantes :: 2 Motores de buscaNenhum
[ Ver toda a lista ]
O recorde de usuários online foi de 337 em 27/12/2010, 08:00
Brasília
| |
Estamos no Twitter

Nossa Comunidade

Nosso Grupo

Últimos assuntos
Top dos mais postadores
| Marcos Guedes | ||||
| hugo | ||||
| alceu11 | ||||
| Julio | ||||
| m@r<3|o | ||||
| mfelis | ||||
| Tales Ruan | ||||
| Nelson Arcas | ||||
| _batmanvfp_ | ||||
| marcio |
Estatísticas
Temos 3637 usuários registradosO último usuário registrado atende pelo nome de reginaldolimas
Os nossos membros postaram um total de 13978 mensagens em 1958 assuntos
problema com campos float
Página 1 de 1 • Compartilhe •
problema com campos float
Boa tarde, seguinte tenho uma tabela com um campo float(15,2), estou inserindo o valor "-496505.58", só que ao apresentar este valor em um relatório com o VFP 9.0 aparece "-496505.59", ao invés de aparecer os 58 cents, aparece 59, alguém me ajudar.. já testei com a versão 5.2 e 6.02 do mysql e o erro é o mesmo... myodbc 3.51 tbm.
Desculpa reformulando: no meu insert , estou inserindo "-496505.58" mas ele insere .59 no final.... e nao tem jeito de eu conseguir colocar o .58
Desculpa reformulando: no meu insert , estou inserindo "-496505.58" mas ele insere .59 no final.... e nao tem jeito de eu conseguir colocar o .58
brulec- Começando a Participar

Re: problema com campos float
Olá Brulec!
Você tentou utlizar NUMERIC, ao invés de FLOAT?
ou seja:
NUMERIC(15,2)
Caso não funcione desta forma, como você está incluindo os registros?
Utilizo o VFP 9.0 para acessar o mysql, mas nunca tive este problema.
Você tentou utlizar NUMERIC, ao invés de FLOAT?
ou seja:
NUMERIC(15,2)
Caso não funcione desta forma, como você está incluindo os registros?
Utilizo o VFP 9.0 para acessar o mysql, mas nunca tive este problema.
Marcos Guedes- Webmaster

Re: problema com campos float
Olá marcos, seguinte... como coloquei no tópico... o problema já está ocorrendo antes de partir para o Fox... exemplo fix um update da seguitne forma:
update transacao set valtot_tra = -496505.58 where codigo_tra = 101409;
(onde valtot_tra é um float(15,2))
Aí quando dou um select neste registro lá está o .59 e não .58... já tive problemas com isso em select's mas que resolvi usando cast(vampo as decimal(10,2)) mas não sei como resolver isso na hora de inserir na tabela
update transacao set valtot_tra = -496505.58 where codigo_tra = 101409;
(onde valtot_tra é um float(15,2))
Aí quando dou um select neste registro lá está o .59 e não .58... já tive problemas com isso em select's mas que resolvi usando cast(vampo as decimal(10,2)) mas não sei como resolver isso na hora de inserir na tabela
brulec- Começando a Participar

Re: problema com campos float
MArcos, acabei de fazer um teste. Criei uma tabela com um campo float (15,2) e outra tabela com um campo decimal(15,2)..
Tentei inserir aquele valor de -496505.58 nas duas tabelas resultado:
Na tabela com o float o problema realmente ocorre, agora o "porque" disso eu nao sei.
Na tabela com o decimal funcionou..
Tente fazer o teste aí se puder... pra ver se ocorre o mesmo
Tentei inserir aquele valor de -496505.58 nas duas tabelas resultado:
Na tabela com o float o problema realmente ocorre, agora o "porque" disso eu nao sei.
Na tabela com o decimal funcionou..
Tente fazer o teste aí se puder... pra ver se ocorre o mesmo
brulec- Começando a Participar

Re: problema com campos float
Brulec, fiz o teste aqui, e deu o mesmo problema com o float, mas não com o decimal.
Não deveria está ocorrendo este problema pois o valor que você está informando está dentro do limite.
Segue a tabela, por curiosidade:
- Tinyint: Pode variar de -128 a 127. E de 0 a 255, caso o parâmetro UNSIGNED seja utilizado.
- Smallint: Pode variar de -32768 a 32767. E de 0 a 65355, caso o parâmetro UNSIGNED seja utilizado.
- Mediumint: Pode variar de -8388608 a 8388607. E de 0 a 16777215, caso o parâmetro UNSIGNED seja utilizado.
- Int: Pode variar de -2147483648 a 2147483647. E de 0 a 4294967295, caso o parâmetro UNSIGNED seja utilizado.
- Bigint: Pode variar de -9223372036854775808 a 9223372036854775807. E de 0 a 18446744073709551615, caso o parâmetro UNSIGNED seja utilizado.
- Float: Armazena um número do tipo ponto flutuante de precisão simples. Varia de -3.402823466E+38 a -1.175494351E-38, 0, e 1.175494351E-38 a 3.402823466E+38. O parâmetro UNSIGNED não é aceito por esse tipo de dado.
- Double: Armazena um número do tipo ponto flutuante de precisão dupla. Varia de -1.7976931348623157E+308 a -2.2250738585072014E-308, 0, e 2.2250738585072014E-308 a 1.7976931348623157E+308. Também não aceita o parâmetro UNSIGNED.
- Decimal: tipo de dado numérico que se comporta como o do tipo CHAR, ou seja, cada dígito ocupa 1 byte.
Não deveria está ocorrendo este problema pois o valor que você está informando está dentro do limite.
Segue a tabela, por curiosidade:
- Tinyint: Pode variar de -128 a 127. E de 0 a 255, caso o parâmetro UNSIGNED seja utilizado.
- Smallint: Pode variar de -32768 a 32767. E de 0 a 65355, caso o parâmetro UNSIGNED seja utilizado.
- Mediumint: Pode variar de -8388608 a 8388607. E de 0 a 16777215, caso o parâmetro UNSIGNED seja utilizado.
- Int: Pode variar de -2147483648 a 2147483647. E de 0 a 4294967295, caso o parâmetro UNSIGNED seja utilizado.
- Bigint: Pode variar de -9223372036854775808 a 9223372036854775807. E de 0 a 18446744073709551615, caso o parâmetro UNSIGNED seja utilizado.
- Float: Armazena um número do tipo ponto flutuante de precisão simples. Varia de -3.402823466E+38 a -1.175494351E-38, 0, e 1.175494351E-38 a 3.402823466E+38. O parâmetro UNSIGNED não é aceito por esse tipo de dado.
- Double: Armazena um número do tipo ponto flutuante de precisão dupla. Varia de -1.7976931348623157E+308 a -2.2250738585072014E-308, 0, e 2.2250738585072014E-308 a 1.7976931348623157E+308. Também não aceita o parâmetro UNSIGNED.
- Decimal: tipo de dado numérico que se comporta como o do tipo CHAR, ou seja, cada dígito ocupa 1 byte.
Marcos Guedes- Webmaster

Re: problema com campos float
Pois eh, parece que vou ter que alterar o tipo do campo na tabela, o problema é que quando faço isso dá alguns erros em algumas linhas...
Mas blz então... valew pela ajuda!
Mas blz então... valew pela ajuda!
brulec- Começando a Participar

Página 1 de 1
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum
Início
» Criar Variáveis em sequencia
» No final a Impressora não Ejecta cem corta o papel
» Ajuda com Imagens no MySQL
» Instalando MySQL no linux
» Como Criar arquivos de Log`s para certos usuarios
» MySQL X VFP @MEMO
» Dirf
» EXE Instalador Não Executa
» SQL Server Setup
» localizar registro no postgreslq (alterar/incluir)
» Saber se existe uma tabela??
» Empacotar arquivos em um único executável
» VAGAS ANALISTA DE SISTEMAS - VISUAL FOX
» Escrever a DATA por extenso
» ActionScript - Introdução
» Selecionar campo com mais de 9 caracteres
» CEP do BRASIL e dos UFs do brasil com codigo do IBGE para nf - <<<
» Tutorial HTML
» PHP + CSS