[firebase-br] Problemas com arredondamento.,
Joao Marcos
unixkiller em gmail.com
Qui Abr 2 10:23:26 -03 2009
Bom dia Pessoal,
Estou com um grande DILEMA, acho que os colegas poderiam me ajudar a resolver..
Adotando mv.valor_unitario = 31,41 e mv.quantidade = 0,466
Utilizando a notação abaixo, truncando com 2 casas decimais....
udf_truncdec((mv.valor_unitario * mv.quantidade),2) as total
assumindo os valores a seguir, obtenho os resultados:
valor_unitario = 31,41 e quantidade = 0,466 obtenho = 14,63
valor_unitario = 2,90 e quantidade = 3 obtenho = 8,69
( Não sei o por quê, mas deveria ser 8,70 pois o valor é
exato)
valor_unitario = 69,00 e quantidade = 0,120 obtenho = 8,27
Porém, truncando com 3 casas decimais, obtenho:
valor_unitario = 31,41 e quantidade = 0,466 obtenho = 14,637
valor_unitario = 2,90 e quantidade = 3 obtenho = 8,700
valor_unitario = 69,00 e quantidade = 0,120 obtenho = 8,280
O problema é:
No delphi, esses valores, utilizando as 3 casas decimais
vão para:
valor_unitario = 31,41 e quantidade = 0,466 obtenho = 14,64
valor_unitario = 2,90 e quantidade = 3 obtenho = 8,700
valor_unitario = 69,00 e quantidade = 0,120 obtenho = 8,280
PROBLEMA:
valor_unitario = 69,00 e quantidade = 0,120 obtenho = 8,27
Qual a razão disso?? Já que o resultado não nos dá uma dízima maior
que duas casas? O valor correto é 8,28.
Porém
--
João Marcos Santos da Silva
Analista de Sistemas
(71) 8737-5888 / (71) 3313-8730
Mais detalhes sobre a lista de discussão lista