为什么余数(模)除返回负数

时间:2019-11-05 04:24:00

标签: java math

    x=-10 % -4;
    System.out.println("-10% -4 : "+x); //-2 second row

输出'-2'为什么在答案中为负值?

2 个答案:

答案 0 :(得分:3)

%是余数除法。它是整数除法后剩余的数量。

x = -10 / -4; // == 2

x = -10 % -4; // == -2

后期可以认为是-10除以-4(即2),其余为-2。

看两个答案的绝对值是否不同可能更容易。

x = -10 / -3; // == 3

x = -10 % -3;  == -1

答案 1 :(得分:1)

不幸的是,这是Java模运算符使用负数的方式。如果只需要正余数,则进行如下简单转换:

if(x < 0){
    x = x * -1;
}