有人可以告诉我Math.floorMod()和Java中%的区别吗?
我当时很困惑
int a = 3;
int b = -2;
System.out.println(a % b);
System.out.println(Math.floorMod(a,b));
结果是
1个
-1
代替
1个
1个
最佳答案
根据javadocs
如果参数的符号相同,则floorMod和%运算符的结果相同。
floorMod(4, 3) == 1; and (4 % 3) == 1
如果参数的符号不同,则结果与%运算符不同。
floorMod(+4, -3) == -2; and (+4 % -3) == +1
floorMod(-4, +3) == +2; and (-4 % +3) == -1
floorMod(-4, -3) == -1; and (-4 % -3) == -1