Valores iguais ... mas difentes!!!

19/12/2003

1

Pessoal,

Eu tenho dois valores que aparentemente são iguais. Quando estou debugando eles são iguais 31,9 e 31,9. Faço um if:

if valor 1 <> valor 2 then
entra no if

O problema é que as vezes ele entra mesmo(aparentemente) sendo iguias. Acho que o problema pode estar na precisão desses valores.

utilizo banco de dados oracle e delphi 4.

obrigado!


Responder

Posts

19/12/2003

Nildo

Caramba... Isso é realmente estranho. Você tem certeza de que o que você está comparando são do mesmo tipo?

Ps.: Eles não podem ser ponteiros. Caso contrário você estará comparando a memória deles. É o caso do PChar. Tente comparar dois PChars exatamente iguais!


Responder

19/12/2003

Beppe

Realmente o problema é a precisão. Mas na unit Math tem a rotina CompareValue que você pode usar. O último parâmetro é a quantia que os números podem diferir para ainda serem considerados ´iguais´

Ex: CompareValue(Valor1, Valor2, 0.1);

Outra alternativa seria comparar a representação em string dos valores.


Responder

22/12/2003

Cicerojr

Obrigado galera pela dica.

Realmente como foi abordado, o problema era a precisão, e consegui resolver pegando os valores da Query como AsCurrency, pois o AsValue não estava com a precisão correta.

Obrigado e Feliz Natal !!


Responder