-
前言
關於取模和取余的講解,網上有很多誤人的帖子,我也看了很多,感覺越看越懵,說什么的都有,最終還是得靠自己來證實!
-
取模和取余的步驟:
對A和B取模取余操作:A % B
- C = A / B
- R = A - C * B
取模和取余的區別僅僅是在計算C的時候不同:
取余時:C 值向0靠近取整,比如:
C = A / B = 5 / 3 = 1.666666 靠近0取整,則C取 1 C = A / B = -7 / 2 = -3.5 ,靠近0取整,則C取-3
取模時:C 值向無窮小處取整,比如:
C = A / B = 5 / 3 = 1.666666,向無窮小處取整,則C取1 C = A / B = -7 / 2 = -3.5 ,向無窮小處取整,則C取-4
-
總結:
1.當兩個數的符號相同,即同為負或者同為正時,取余和取模結果相同,因為C偏向同一個方向取值,使得C值一樣。
2.符號不同時,取模結果的符號和除數一致,取余結果的符號和被除數一致。
3.%號在Java中計算負數時是取余而不是取模,如果要對負數取模,要用Math.floorMod( )方法。