我无意中在python中发现了一个奇怪的行为。在repl中输入这段轻松的代码。
In [29]: 7 /-3
Out[29]: -3
对这一结果找不到任何合理的解释。这是怎么回事?
发布于 2013-05-16 18:55:54
Python整数除法会将结果舍入到负无穷大。
原因:http://python-history.blogspot.com.au/2010/08/why-pythons-integer-division-floors.html
发布于 2013-05-16 19:03:16
当做整数除法时,python舍入到下一个较低的整数(Floor)。这就是为什么如果你计算7/3
,python会告诉你它是2
。当您键入7/-3
时,它不会变成-2
,因为那不是发言权。-3
是下一个较低的整数。
发布于 2013-05-16 19:19:38
在执行整数除法时,将数字四舍五入到较低的整数(floor(x)
返回以N为单位的最大n
,即n <= x
)。这意味着对于负数,四舍五入的数值将具有更高的绝对值(因此7/3 == floor(7//-3) == floor(-2.333)
返回-3
)。
https://stackoverflow.com/questions/16585548
复制相似问题