java中的取余运算(remainder)和取模运算(modulus)的区别是什么?
首先要知道的是在Java中,%
操作符是取余运算,如果做取模运算,可以使用Math.floorMod(a, b)
方法。
result = a % b //取余
result = Math.floorMod(a, b) //取模
如果a和b的正负相同,则取余运算和取模运算的结果是一致的,比如
int a = 10, b = 3;
System.out.println(Math.floorMod(a, b)); // 1
System.out.println(a % b); // 1
int a = -10, b = -3;
System.out.println(Math.floorMod(a, b)); // -1
System.out.println(a % b); // -1
如果a和b的正负不相同,取余运算的结果的正负与a一致,取模运算的结果正负与b一致。
int a = -10, b = 3;
System.out.println(Math.floorMod(a, b)); // 2
System.out.println(a % b); // -1
int a = 10, b = -3;
System.out.println(Math.floorMod(a, b)); // -2
System.out.println(a % b); // 1
内容