6

我对python中的以下整数数学感到困惑:

-7/3 = -3因为(-3)*3 = -9 < -7. 我明白。

7/-3 = -3我不明白这是如何定义的。(-3)*(-3) = 9 > 7. 在我看来,它应该是-2,因为(-3)*(-2) = 6 < 7.

这是如何运作的?

4

5 回答 5

14

文档中:

对于(普通或长)整数除法,结果是整数。结果总是向负无穷大四舍五入:1/2 为 0,(-1)/2 为 -1,1/(-2) 为 -1,(-1)/(-2) 为 0。

四舍五入-inf解释了您所看到的行为。

于 2011-10-26T14:52:36.937 回答
4

这是它的工作原理:

int(x)/int(y) == math.floor(float(x)/float(y))
于 2011-10-26T14:53:42.010 回答
1

扩展 aix 和 robert 的答案。

考虑这一点的最佳方法是向下舍入(朝向负无穷大)浮点结果:

-7/3 = floor(-2.33) = -3

7/-3 = floor(-2.33) = -3

于 2011-10-26T15:01:09.363 回答
0

Python 向下舍入。7/3 = 2 (2+1/3) -7/3 = -3 (-2+1/3)

于 2011-10-26T14:53:59.483 回答
0

/ 用于浮点除法 // 用于整数除法(返回整数)

并且python将结果向下舍入

于 2015-07-15T09:09:09.570 回答