web-dev-qa-db-ja.com

Python 3のint()とfloor()の違いは何ですか?

Python 2、floor()はfloat値を返しました。私には明らかではありませんが、floor()を返すことが有用な理由を明確にするいくつかの説明を見つけました。フロート(float('inf')float('nan')などの場合)。

ただし、Python 3、floor()は整数を返します(前述の特別な場合はオーバーフローエラーを返します)。

では、int()floor()の違いはありますか?

47
datah4ck3r

floor() rounds downint()切り捨て。負の数を使用すると、違いは明らかです。

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

負の数を切り捨てると、0から遠ざかり、切り捨てると0に近づきます。

別の言い方をすれば、floor()は常に元の値以下になります。 int()はゼロに近くなるか、等しくなります。

93
Martijn Pieters