2010-11-19 6 views
0

Comment la vérification de condition est inférieure ou égale à celle effectuée sur une variable Double.Double vérification de condition variable pour leass égal ou égal?

J'ai deux variables en premier, deuxième.

Double first = 20.0; 
Double second = 20.0; 
if(first <= second){ 
    //This is not going inside the if part 
} 
+2

Est-ce le code exact que vous utilisez ou les calculs intermédiaires sont-ils impliqués? –

+1

Cela semble plutôt bien. Où est le problème? –

Répondre

0

Vous ne savez pas si c'est le cas, mais les points flottants ne sont jamais représentés exactement en mémoire. Bien que les deux valeurs soient très proches les unes des autres, il peut arriver que la première soit légèrement supérieure à la seconde, ce qui fait que la condition if est fausse.

+1

Ils * sont * représentés exactement en mémoire - c'est juste que la valeur exacte peut être une approximation des données d'origine. Par exemple, le nombre représenté dans 'double d = 0.1;' est une valeur exacte - mais ce n'est pas exactement 0.1. –

Questions connexes