我在python中偶然发现了一个奇怪的行为。 在repl中输入代码的和平。
In [29]: 7 /-3
Out[29]: -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
)。