2013-03-22 376 views

回答

3

Python的%-operator计算数学余数,而不是模数。其余部分根据定义是0和除数之间的数字,它不依赖于像模数那样的红利符号。

+0

其实,你已经把它落后了,如果y是正数,那么“x mod y”将会在0和y-1之间,而“x余数y”的符号将取决于x的符号。我想不出任何我曾经对负数使用“%”运算符的情况,并且想要其余的,但很长一段时间,标准只强制要求具有正操作数的“%”的特定行为;在这些情况下,“mod”和“余数”是同义词,“mod”更容易表达,所以这就是卡住的名字。 – supercat 2014-09-26 19:05:47

0

不确定python,但% java中的运算符返回除法后得到的余数。

-1%26 

它分解:

  26)-1(0 
       0 
       --- 
       -1 ---> Remainder as (-1+0=-1) 
1

按规定这是工作。

的契约是

a == (a/b) * b + (a % b) 

和整数除法朝向零截断。因此,如果派息为负,则会得到负值余额。

4

Wikipedia有一个不错的表格,它显示了各种语言的操作符号。在Python中,它是除数的标志(26),在Java/C中是分红的标志(-1)。