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]](http://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
---------------
Being constantly subjected to something makes you somewhat immune to it, like Brits and misery. -- Craspology