Salut,
Et bienvenue dans le monde merveilleux des calculs sur les nombres flottants...
Déjà voilà quelque chose qui explique que l'égalité peut effectivement être fausse même si elle est juste (si si !) : http://support.microsoft.com/kb/125056/EN-US
En fait il peut tout à fait y avoir des différences d'un compilateur à l'autre, et même des différences d'une option de compilation à l'autre (en l'occurence entre debug et release), et apparemment encore plus si affinité.
La bonne méthode quand on manipule des nombres flottants c'est de tester que la valeur ne s'éloigne pas de la valeur attendue d'un certain epsilon, par exemple :
std::abs( expectedValue - actualValue ) < std::numeric_limits< float >::epsilon()
MAT.
Partager