Fórum Problemas com retorno de um valor #470064

14/02/2014

0

Estou utilizando o Firebird 2.5 e tenho o seguinte problema que está me vencendo.
Tenho um SP onde lá eu calculo totais de itens e acumulo os valores para me retornar o valor total das mercadorias.

É uma conta muito facil, tenho 01 item e um valor unitário 76,60, obviamente que o total "seria" 76,60, mas não fica, sempre aparece no total 76,59.
Então fiz algo muito louco assim:
dentro do select coloquei: ((c.qtitem * c.vlunitario) * 100) as Total_item
e depois assim:
total_item = trunc(total_item, 0);
total_item = (total_item / 100);

Beleza, depurando deu certo, passa para o total o valor 76,60, isso dentro da SP, mas quando passo o resultado para a minha aplicação e tabela, ele continua enviando 76,59.

E eu não sei mais o que fazer...
Os tipos de campo são Double Precision.
Se alguem puder me dar um dica.

Cristiano

Cristiano

Responder

Posts

14/02/2014

Marisiana Battistella

Olá Moacir!
Já tentou utilizar a função ROUND quando é realizado o cálculo?

Por exemplo: select ROUND(((c.qtitem * c.vlunitario) * 100), 2) as Total_item
Responder

Gostei + 0

14/02/2014

Alex Lekao

Eu iria sugerir usar o padrao Numeric no lugar de Double Precision.

Alem desta Opcao Round. rssr

Responder

Gostei + 0

14/02/2014

Cristiano

Obrigado pela ajuda Marisiana e Alex, juntei as duas coisas que me passaram e enfim deu certo!
Responder

Gostei + 0

14/02/2014

Marisiana Battistella

Por nada Moacir! =)
Responder

Gostei + 0

17/02/2014

Alex Lekao

Blz...

Precisando eh so falar.

Abraco.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar