我对python中的以下整数数学感到困惑:
自-7/3 = -3
以来 (-3)*3 = -9 < -7
。我明白了。
7/-3 = -3
我不明白这是如何定义的。 (-3)*(-3) = 9 > 7
。在我看来,它应该是-2,因为(-3)*(-2) = 6 < 7
。
这是如何运作的?
答案 0 :(得分:13)
对于(普通或长整数)除法,结果为整数。 结果总是向负无穷大舍入: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将结果向下舍入