Java中Math.floorMod()和%的区别

9

有人能告诉我在Java中Math.floorMod()和%之间的区别吗?

当我看到下面这段代码时,感到很困惑:

    int a = 3;
    int b = -2;
    System.out.println(a % b);
    System.out.println(Math.floorMod(a,b));

结果是 1 -1 而不是 1 1

(该段内容为关于某个IT技术的错误输出信息)
1个回答

9
根据Javadoc文档,如果两个参数的符号相同,则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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接