Bonjour à tous.
J'utilise Python pour écrire des scripts dans un logiciel de géomodélisation.
Dans un de mes scripts, j'utilise une boucle while qui modifie un nombre b jusqu'à ce que celui-ci devienne entier.
Pour ça, j'utilise le test while b != math.floor(b)
Mais à ma grande surprise la boucle continue de tourner même une fois que b est devenu entier.
Mon incomprehension est encore plus grande lorsque j'ajoute à la fin de ma boucle : print b
print math.floor(b)
print b-math.floor(b)
En effet, il s'affiche alors des résultats étonnants comme
2.0
2.0
2.6645352591e-015
En gros, 2.0-2.0 = 2.6645352591e-015.
J'ai d'abord pensé à un pb de type mais b et sa partie entière sont bien tous deux des float.
Merci de m'expliquer ce qui se passe, et comment je puis faire pour que ma boucle s'arrête dès que b soit entier.
Partager