2015-06-24 13 views
15

W języku Python 2, floor() zwrócono wartość zmiennoprzecinkową. Chociaż nie było to dla mnie oczywiste, znalazłem kilka wyjaśnień wyjaśniających, dlaczego warto zwrócić wartość float (w przypadku takich przypadków jak float('inf') i float('nan')).Jaka jest różnica między int() i floor() w Pythonie 3?

Jednak w języku Python 3, floor() zwraca liczbę całkowitą (i zwraca błąd przepełnienia dla specjalnych przypadków wymienionych wcześniej).

Jaka jest różnica między wersjami int() i floor()?

Odpowiedz

40

floor() naboje w dół. int()przycina. Różnica jest jasne, kiedy używasz liczb ujemnych:

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

Zaokrąglanie liczb ujemnych w dół oznacza, że ​​oddalają się od 0, obcinanie przenosi je bliżej 0.

Mówiąc to inaczej, zawsze będzie floor() być mniejszą lub równą oryginałowi. int() będzie bliżej zera lub równego.

+1

Dzięki! Nigdy nie myślałem o ujemnych liczbach całkowitych. – datah4ck3r

Powiązane problemy