Python中的整数除法

时间:2011-10-26 14:49:53

标签: python math integer integer-division

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

-7/3 = -3以来

(-3)*3 = -9 < -7。我明白了。

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

这是如何运作的?

5 个答案:

答案 0 :(得分:13)

来自documentation

  

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

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

答案 1 :(得分:4)

这是它的工作原理:

int(x)/int(y) == math.floor(float(x)/float(y))

答案 2 :(得分:1)

扩大艾克斯和罗伯特的答案。

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

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

python将结果向下舍入