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

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

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

Quelle est Donc la différence, le cas échéant, entre les int() et floor() maintenant?

27
demandé sur vaultah 2015-06-24 23:13:58

1 réponses

floor() des tours de 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, les tronquer les rapproche de 0.

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

60
répondu Martijn Pieters 2015-06-24 20:17:12