为什么 python 向下舍入?例如 -12/10 = -2

why does python round down? eg -12/10 = -2

我在Python中看到一个twitter post指出-12/10 = -2。是什么原因造成的?我认为答案应该(在数学上)是一个。为什么python"literally"会这样向下取整?

>>> -12/10
-2
>>> 12/10
1
>>> -1*12/10
-2
>>> 12/10 * -1
-1

这是由于 int rounding down divisions. (aka Floor division)

>>> -12/10
-2
>>> -12.0/10
-1.2
>>> 12/10
1
>>> 12.0/10
1.2

这称为 floor 除法(也称为整数除法)。在 Python 2 中,这是 -12/10 的默认行为。在 Python3 中,默认行为是使用浮点除法。要在 Python 2 中启用此行为,请使用以下导入语句:

from __future__ import division

要在导入此模块的情况下在 Python 3 或 Python 2 中使用楼层划分,请使用 //

可以在 Python documentation、"PEP 238: Changing the Division Operato" 中找到更多信息。