17/01/2006

Arredondamento indesejável, TdbEdit, TFloatField

Boa tarde pessoal, tudo bem?

Tenho um campo ´valor´ TFloatField, numa TQuery. É do tipo numeric (11,2) no banco sql server. Esse campo está num TdbEdit. Quando altero ou insiro um valor no DBEdit de 60.90, por exemplo, ao sair do dbdrig, automaticamente ele decrementa para 60.89. Alguém sabe explicar o porquê?

Agradeço a ajuda.

:?


Domingosafn

Respostas

17/01/2006

Host

Eu faria dois testes, primeiro no on exit do dbedit , botaria um strtofloat(formatfloat(´#,0.0´,campo)); ou mudaria o campo para numeric(10,3) , são tentaivas validas , ñ passei por isto... espero q alguem q ja tenha passado por isto te ajude melhor!


Responder Citar

19/01/2006

Domingosafn

strtofloat(formatfloat(´#,0.0´,[color=red:daec6ba1b8]campo[/color:daec6ba1b8]))

Esse ´campo´ precisa ser do tipo Extented, como faço para transformar esse TFloatField em Extended? Jä tentei campo.value, .AsFloat, mas não deu certo. ... :cry:


Responder Citar

19/01/2006

Edilcimar

extended é um tipo de variável, maior que real


Responder Citar

19/01/2006

Domingosafn

Vocês acham que o fato de ser um campo numeric([color=red:cc6d0ac378]11[/color:cc6d0ac378],2), ou seja, ímpar, pode estar causando essa ´decrementação´ indesejável?


Responder Citar

19/01/2006

Paulo

Cara, tô com um amigo que só trabalho com SQL Server e tenho a mesma coisa. Ainda não consegui resolver isso não. Pensei eu, que fosse por causa do Paradox, já que importei os dados de uma tabela Paradox para o SQL Server, mas como apareceu com vc tbm, então percebo que pode ser outra coisa. Pois se multiplico 2 X 3,71 = 7,45 e não 7,42. Tá brabo, mas seu conseguir, te mando já assim q conseguir, ok? E se vc conseguir primeiro é só postar, que eu vou ficar acompanhando esse post


Responder Citar

19/01/2006

Domingosafn

Edilcimar,

Você saberia porque ele poderia estar decrementando?


Responder Citar

19/01/2006

Anderh

Também me bati com esse problema até que ´fussando´ encontrei uma solução. Não sei porque acontece essa mudança no valor, mas podes resolver clicando duas vezes sobre o componente tquery. Avai abrir um editor de fields
inclua o campo que está dando problemas e, formate como quizer no Object Inspecto. Lá podes colocar em formato Currency ou em DisplayFormat colocar uma máscara, tipo #,0.00

Acredito que isso resolverá o problema.

Sucesso!


Responder Citar

20/01/2006

Domingosafn

anderh,

Fiz o que sugeriu: coloquei 40.20, deu certo; mas com 30.20 decrementou para 30.19. Acima de 31.20 ele não decrementa, a partir desse valor, a quantia é decrementada. Que doido .. :?

Alguma luz, por favor!

:shock:


Responder Citar

20/01/2006

Domingosafn

anderh,

Com esse DisplayFormat, se o número for negativo, será mostrado?


Responder Citar