[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