В чем разница между int() и floor() в Python 3?
В Python 2 floor()
возвратил значение float. Хотя это и не очевидно для меня, я нашел несколько объяснений, поясняющих, почему полезно иметь float floor()
return float (для таких случаев, как float('inf')
и float('nan')
).
Однако в Python 3 floor()
возвращает целое число (и возвращает ошибку переполнения для особых случаев, упомянутых ранее).
Итак, какова разница, если таковая имеется, между int()
и floor()
?
Ответы
Ответ 1
floor()
округляется вниз. int()
усекает. Разница очевидна при использовании отрицательных чисел:
>>> import math
>>> math.floor(-3.5)
-4
>>> int(-3.5)
-3
Округление отрицательных чисел означает, что они удаляются от 0, усечение приближает их к 0.
Положив это по-другому, floor()
всегда будет ниже или равен оригиналу. int()
будет ближе к нулю или равно.