Valores iguais ... mas difentes!!!
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!
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!
Cicerojr
Curtidas 0
Respostas
Nildo
19/12/2003
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!
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!
GOSTEI 0
Beppe
19/12/2003
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.
Ex: CompareValue(Valor1, Valor2, 0.1);
Outra alternativa seria comparar a representação em string dos valores.
GOSTEI 0
Cicerojr
19/12/2003
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 !!
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 !!
GOSTEI 0