首页 > 技术文章 > Java取余和取模(%和Math.floorMod())的区别

tooyi 2020-07-25 10:13 原文

%被称为取余,Math.floorMod()被称为取模。

对于整型数a,b来说,取模运算或者取余运算的方法都是:

1.求 整数商: c = a/b;

2.计算模或者余数: r = a - c*b.

%取余运算在a/b这一步骤时,得到的商,向0方向舍弃小数,之后再计算a-b*(a/b)

floorMod取模运算在a/b这一步骤时,得到的商,向负无穷方向舍弃小数,之后再计算a-b*(a/b)

符号不同的结果

举例,a=8,b=-3,此时c=-2.66…
对于%,c=-2,a%b=a-bc=2
对于floorMod,c=-3,floorMod(a,b)=a-bc=-1

推荐阅读