suizokukan a écrit :
Diable, Masklinn, je ne pensais pas que la comparaison directe de deux types float posait problème.
|
Code :
>>> (0.2 - 0.1) == (0.3 - 0.2) False
|
![[:dawa] [:dawa]](https://forum-images.hardware.fr/images/perso/dawa.gif)
Vas lire le goldberg immédiatement, chenapan 
Il faut utiliser un epsilon (en gros tu détermines une marge d'erreur, tu soustraits les deux nombres à comparer et si le résultat est inférieur à ta marge d'erreur tu considères qu'ils sont égaux).
Il y a d'autres stratégies, mais elles imposent des limitations (et potentiellement un impact au niveau des perfs) et ne sont pas nécessairement utilisables selon les cas: faire ses calculs avec des entiers (en ajoutant des puissances de 10 aux valeurs initiales, c'est comme ça que sont faits les calculs monétaires) ou en faisant du fixed-point arithmetics ou du decimal. En python, c'est le rôle du module decimal justement.
Message édité par masklinn le 13-10-2009 à 16:10:07
---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?