先上例子
In [1]: -3 % 10
Out[1]: 7
root [0] -3 % 10
(int) -3
分析原因:
在数学公式中,两种语言的求余数的算法都是一样的:
余数 = 被除数 - 除数 * 商
唯一的区别是,整除(即公式中的商)在两种语言中是不同的。
- C:从c99开始规定向0取整
- python:向负无穷取整
再上个例子:
In [1]: -3 // 10
Out[1]: -1
root [0] -3 / 10
(int) 0
将商带入公式,就可以解释为什么第一个例子中两种语言得到不同的余数了。