Problemas com retorno de um valor

Firebird

14/02/2014

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

Curtidas 0

Respostas

Marisiana Battistella

Marisiana Battistella

14/02/2014

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
GOSTEI 0
Alex Lekao

Alex Lekao

14/02/2014

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

Alem desta Opcao Round. rssr

GOSTEI 0
Cristiano

Cristiano

14/02/2014

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

Marisiana Battistella

14/02/2014

Por nada Moacir! =)
GOSTEI 0
Alex Lekao

Alex Lekao

14/02/2014

Blz...

Precisando eh so falar.

Abraco.
GOSTEI 0
POSTAR