2013-03-22 371 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)。