为什么Java和C中-1%26=-1而在Python中是25?
为什么在C和Java中,取模运算符的表现不如预期?
4 个回答
1
它的工作方式符合规定。
这个合同是
a == (a/b) * b + (a % b)
而且整数除法会向零取整。所以如果被除数是负数,你得到的余数也是负数。
5
维基百科上有一个很好的表格,展示了不同编程语言中取模运算的符号。在Python中,结果的符号取决于除数(比如26),而在Java/C语言中,结果的符号则取决于被除数(比如-1)。
3
Python中的百分号(%)运算符计算的是数学上的余数,而不是模数。余数的定义是一个介于0和除数之间的数字,它不受被除数符号的影响,这一点和模数不同。