Modulo没有显示正确的价值

时间:2014-03-22 19:37:03

标签: java modulo

-46 modulo 7是3,但我得到-4。为什么呢?

int sa=-46;
int p=7;
System.out.println(sa);//-46
sa=sa%p;
System.out.println(sa);//-4

编辑:

这就是我解决它的方式

(sa)%p + p)%p;

1 个答案:

答案 0 :(得分:1)

%(余数运算符)的Java定义

  

Java编程语言提供了执行的操作符   加法,减法,乘法和除法。有一个好的   你有机会认识他们基本的同行   数学。对你来说可能看起来很新的唯一符号是“%”,即   将一个操作数除以另一个操作数并将余数作为其返回   结果

(参见参考资料来源here

如果你想创建一个模数函数,当你要求模数n时,只返回[0,n]范围内的数字,你必须写它(简单)。