web-dev-qa-db-fra.com

Quelle est la différence entre int () et floor () dans Python 3?

Dans Python 2, floor() a renvoyé une valeur flottante. Bien que ce ne soit pas évident pour moi, j'ai trouvé quelques explications clarifiant pourquoi il peut être utile d'avoir floor() return float (pour les cas comme float('inf') et float('nan')).

Cependant, dans Python 3, floor() renvoie un entier (et retourne une erreur de débordement pour les cas spéciaux mentionnés précédemment).

Alors, quelle est la différence, le cas échéant, entre int() et floor() maintenant?

47
datah4ck3r

floor() arrondit bas. int()tronque. La différence est claire lorsque vous utilisez des nombres négatifs:

>>> import math
>>> math.floor(-3.5)
-4
>>> int(-3.5)
-3

Arrondir les nombres négatifs signifie qu'ils s'éloignent de 0, la tronquer les rapproche de 0.

Autrement dit, la floor() sera toujours inférieure ou égale à l'original. int() va être plus proche de zéro ou égal.

93
Martijn Pieters