1

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

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

找不到任何对此结果的合理解释。这里发生了什么?

4

3 回答 3

2

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

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

于 2013-05-16T10:55:53.977 回答
0

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

于 2013-05-16T11:03:15.597 回答
0

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

于 2013-05-16T11:19:38.440 回答