首先,取余和取模是不一樣的。 其次,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é)果分析:當除數(shù)與被除數(shù)同號時,取余和取模結(jié)果一樣。當除數(shù)與被除數(shù)異號時,取余和取模結(jié)果不同,且取余的結(jié)果和被除數(shù)同號,取模的結(jié)果和除數(shù)同號 取模:這里Math.floorMod方法的功能是向下取模(也就是取模)。“向下”的意思就是說盡可能讓商更?。ㄉ讨迪蜇摕o窮方向?。?/span>。如-9mod2,-9/2=-4.5,取商為-5。余數(shù)為-9-(2*-5)=1。 取余:盡可能讓商的絕對值更小(商值向0的方向取,即商為負值時,取大一點,商為正值,取小一點)。如-9rem2,-9/2=-4.5,取商為-4。余數(shù)為-9-(2*-4)=-1。 結(jié)論:java中的%運算符表示取余。
|