Re: [firebase-br] Comparação entre campos numéricos. Resultado maluco...

Jean Vichinheski jean em equipesul.com.br
Seg Jun 12 13:16:21 -03 2006


Tenta usar a versão firebird 1.5.3 que é a estavel tive o mesmo tipo de 
problema com uma versão não estavel !!!
----- Original Message ----- 
From: "Pedro" <news.pj em gmail.com>
To: <lista em firebase.com.br>
Sent: Monday, June 12, 2006 1:00 PM
Subject: [firebase-br] Comparação entre campos numéricos. Resultado 
maluco...


Pessoal, desta vez é o seguinte...

A tabela tem os seguintes campos :

codigo ( Inteiro) ,
qtd ( Inteiro),
vlrund Numeric(15,2),
Total Numeric(15,2).

Esta tabela é alimentada pela aplicação do cidadão lá. Fizemos o
seguinte teste via IBExpert:

Select codigo, qtd, vlrUnd, valor, Cast(qtd*vlrUnd as Numeric(15,2)) 
Calculado
from Tabela
where Cast(qtd*vlrUnd as Numeric(15,2))<>valor

Como resultado, tivemos algo assim :

codigo    QTD   VLRUND           TOTAL         CALCULADO
10534       54       270,24        14592,96               14592,96
10212       12       288,45          3461,40                3461,40
10312        12      288,45          3461,40                3461,40
11082        31      236,65          7336,15                7336,15
10260        60      270,24        16214,40              16214,40

E por aí vai...

No olho, onde está a diferença? Até levamos pro excel pra ver se tinha
a ver com aproximação decimal, tira-teima... Nada! Voltamos ao
IBExpert, e visualmente tudo OK. Então clicamos 2x sobre o campo
"Total", na primeira linha e lá apareceu : 14592,9599999999991. Visto
isso, clicamos também no campo "Calculado". E lá apareceu :
14592,960000000001. Ahááá !!!

Daí...

Alguém sabe explicar que loucura é essa? Como contornar essa
maluquice? Na aplicação os dados são passados para o insert já
arredondados para 2 casas decimais.Será o firebird, via Numeric,
fazendo doideira ou o IBExpert que tem bug? Firebird 1.5 RC2, IBExpert
2.5.0.22 Personal Edition. Alguém vá viu isso?

At,
Pedro.

______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa



-- 
Internal Virus Database is out-of-date.
Checked by AVG Anti-Virus.
Version: 7.0.344 / Virus Database: 267.12.5/147 - Release Date: 24/10/2005





Mais detalhes sobre a lista de discussão lista