| 首先,取余和取模是不一樣的。 其次,java中的%運算符表示取余。 最后,取余和取模的區(qū)別到底是什么呢? public class Test {public static void main(String[] args) {
 System.out.println("rem表示取余,mod表示取模");
 System.out.println("9rem2=" + 9 % 2);
 System.out.println("9mod2=" + Math.floorMod(9, 2));
 System.out.println();
 System.out.println("-9rem-2=" + -9 % -2);
 System.out.println("-9mod-2=" + Math.floorMod(-9, -2));
 System.out.println();
 System.out.println("-9rem2=" + -9 % 2);
 System.out.println("-9mod2=" + Math.floorMod(-9, 2));
 System.out.println();
 System.out.println("9rem-2=" + 9 % -2);
 System.out.println("9mod-2" + Math.floorMod(9, -2));
 }
 }
 輸出結(jié)果: rem表示取余,mod表示取模9rem2=1
 9mod2=1
 
 
 -9rem-2=-1
 -9mod-2=-1
 
 
 -9rem2=-1
 -9mod2=1
 
 
 9rem-2=1
 9mod-2=-1
 
 輸出結(jié)果分析:當(dāng)除數(shù)與被除數(shù)同號時,取余和取模結(jié)果一樣。當(dāng)除數(shù)與被除數(shù)異號時,取余和取模結(jié)果不同,且取余的結(jié)果和被除數(shù)同號,取模的結(jié)果和除數(shù)同號 取模:這里Math.floorMod方法的功能是向下取模(也就是取模)?!跋蛳隆钡囊馑季褪钦f盡可能讓商更小(商值向負(fù)無窮方向?。?/span>。如-9mod2,-9/2=-4.5,取商為-5。余數(shù)為-9-(2*-5)=1。 取余:盡可能讓商的絕對值更小(商值向0的方向取,即商為負(fù)值時,取大一點,商為正值,取小一點)。如-9rem2,-9/2=-4.5,取商為-4。余數(shù)為-9-(2*-4)=-1。 結(jié)論:java中的%運算符表示取余。 |