Calculo dando erro
olá pessoal, bem é o seguinte...eu to fazendo um calculo aqui, mas esta dando erro de valor flutuante inválido
eu to usando firebird 1.5 e o campo é numeric(9,2)
eu tenho o valor 1.999,93 e quando eu faço uma subtração de 1,00 por exemplo da erro de campo flutuante inválido, gostaria de saber de vocês o que esta acontecendo, ou se tem alguma forma do valor 1.999,93 ficar tipo 1999,93 por exemplo.
valeu pessoal
obrigado.
eu to usando firebird 1.5 e o campo é numeric(9,2)
eu tenho o valor 1.999,93 e quando eu faço uma subtração de 1,00 por exemplo da erro de campo flutuante inválido, gostaria de saber de vocês o que esta acontecendo, ou se tem alguma forma do valor 1.999,93 ficar tipo 1999,93 por exemplo.
valeu pessoal
obrigado.
L3gion4rio
Curtidas 0
Respostas
Pestana_
03/04/2007
não sei se vou resolver o seu problema, mas de qualquer jeito tenta uzar o evento OnGetText do campo pra ver se funciona, ali vc coloca a sua condição de filtragem.
qualquer coisa posta ai,
flw.
qualquer coisa posta ai,
flw.
GOSTEI 0
Briciosm
03/04/2007
Explique melhor o problema....
Se está fazendo esta subtração direto na query.
Ou está pegando o valor do campo, passando para uma variável e fazendo a subtração.
De momento o que posso dizer é que os tipos real, float, ... deve-se usar ´.´ e não ´,´.
Caso passe o valor para string ou varchar ele transforma o ´.´ em ´,´.
O Correto é usar 1.00 OK?
Até mais.
Se está fazendo esta subtração direto na query.
Ou está pegando o valor do campo, passando para uma variável e fazendo a subtração.
De momento o que posso dizer é que os tipos real, float, ... deve-se usar ´.´ e não ´,´.
Caso passe o valor para string ou varchar ele transforma o ´.´ em ´,´.
O Correto é usar 1.00 OK?
Até mais.
GOSTEI 0
L3gion4rio
03/04/2007
eu to passando os valores pra variaveis do tipo Real
abaixo está o código que estou usando.
valor_total := strtofloat(labelsubtotal.Caption);
valor_pago := strtofloat(TxtValorpAGO.Text);
txtValorPago.Text := FloatToStr(valor_total - valor_pago);
labelResta.Caption := ´´;
labelResta.Caption := FloatToStr(valor_total - valor_pago);
labelResta.Caption := labelResta.Caption; //FormatFloat(´#,,0.00´, strtofloat(labelResta.Caption));
txtValorPago.Text := labelResta.Caption;
abaixo está o código que estou usando.
valor_total := strtofloat(labelsubtotal.Caption);
valor_pago := strtofloat(TxtValorpAGO.Text);
txtValorPago.Text := FloatToStr(valor_total - valor_pago);
labelResta.Caption := ´´;
labelResta.Caption := FloatToStr(valor_total - valor_pago);
labelResta.Caption := labelResta.Caption; //FormatFloat(´#,,0.00´, strtofloat(labelResta.Caption));
txtValorPago.Text := labelResta.Caption;
GOSTEI 0
Briciosm
03/04/2007
Primeiro verifica se o erro dá na query ou ao passar o valor para a variável.
Depois nos avise!
Depois nos avise!
GOSTEI 0
Briciosm
03/04/2007
Se for em variável você poderá identificar qual é a que está dando o problema.
GOSTEI 0
L3gion4rio
03/04/2007
ele da erro na varial valor_total, ou seja ele pega o valor 1.999,93 e quando vai subtrair 1,00 por exemplo e fala que nao valor flutuante valido. nao teria um jeito de na hora de jogar o valor pra varial ele vir tipo 1999,93??
GOSTEI 0
Edilcimar
03/04/2007
tem que usar 1999.93 (com ponto) e diminuir 1.00
GOSTEI 0
L3gion4rio
03/04/2007
mas eu estou puxando esse valor do bd, e ta ficando 1.999,93 to usando campo Numeric(9,2) quando vou gravar nao aceita que eu coloque o ponto.
GOSTEI 0
Edilcimar
03/04/2007
com certeza o erro está na formatação do número
GOSTEI 0
L3gion4rio
03/04/2007
sim....mas e como ficaria entao essa formatação no exemplo que vc citou, ou seja pra ficar 1999.93
GOSTEI 0
Pestana_
03/04/2007
mas eu estou puxando esse valor do bd, e ta ficando 1.999,93 to usando campo Numeric(9,2) quando vou gravar nao aceita que eu coloque o ponto.
se vc estiver usando a TQuery de um olhada neste campo que está acontecendo o problema no field editor na propriedade OnGetText deste campo, tem algum codigo ali que formate este valor?
flw
GOSTEI 0
Pestana_
03/04/2007
está parecendo que o field da query não está formatado correto, depois ele joga o valor com formato errado no label (labelsubtotal.Caption). Há uma outra possibilidade pra vc estar verificando, o que vc tem que fazer é identificar em qual lugar do código o label (labelsubtotal.Caption) recebe o valor da query, depois vc verifique a formatação deste field que está jogando o valor para o label, através da propriedade (se eu nao me engano deve ser o editFormat ou DisplayFormat não estou me lembrando) no field editor na query.
qualquer problem posta ai,
flw.
qualquer problem posta ai,
flw.
GOSTEI 0