当操作数为负时,Python除法运算符表现异常

时间:2013-05-16 10:54:22

标签: python python-2.7 operator-keyword

我在python中偶然发现了一个奇怪的行为。 在repl中输入代码的和平。

In [29]: 7 /-3
Out[29]: -3

无法找到任何合理的解释。 这里发生了什么?

3 个答案:

答案 0 :(得分:2)

Python整数除法将结果舍入为负无穷大。

原因如下:http://python-history.blogspot.com.au/2010/08/why-pythons-integer-division-floors.html

答案 1 :(得分:0)

进行整数除法时,python舍入到下一个较低的整数(floor)。 这就是为什么如果你计算7/3 python会告诉你2。 当您输入7/-3时,它不会变为-2,因为那不是地板。 -3是下一个较低的整数。

答案 2 :(得分:0)

执行整数除法时,数字四舍五入到较低的int(floor(x)返回N中的最大n,使得n <= x)。这意味着对于负数,舍入数值将具有更高的绝对值(因此7/3 == floor(7//-3) == floor(-2.333)返回-3)。