Calculo dando erro

Delphi

03/04/2007

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.


L3gion4rio

L3gion4rio

Curtidas 0

Respostas

Pestana_

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.


GOSTEI 0
Briciosm

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.


GOSTEI 0
L3gion4rio

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;


GOSTEI 0
Briciosm

Briciosm

03/04/2007

Primeiro verifica se o erro dá na query ou ao passar o valor para a variável.

Depois nos avise!


GOSTEI 0
Briciosm

Briciosm

03/04/2007

Se for em variável você poderá identificar qual é a que está dando o problema.


GOSTEI 0
L3gion4rio

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

Edilcimar

03/04/2007

tem que usar 1999.93 (com ponto) e diminuir 1.00


GOSTEI 0
L3gion4rio

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

Edilcimar

03/04/2007

com certeza o erro está na formatação do número


GOSTEI 0
L3gion4rio

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_

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_

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.


GOSTEI 0
POSTAR