%为取余(rem),Math.floorMod()为取模(mod)
取余取模有什么区别呢?
对于整型数a,b来说,取模运算或者取余运算的方法都是:
1.求 整数商: c = a/b;
2.计算模或者余数: r = a - c*b.
区别是:
取余运算在计算商值向0方向舍弃小数位
取模运算在计算商值向负无穷方向舍弃小数位
比如a=4,b=-3时,a/b = -1.3333...
此时,取余c = -1,取模c = -2
(%在不同语言中有不同的意义,比如Java或者c/c++中%为取余,python中%则为取模)
%(取余)运算:
1、结果的符号:结果的符号与被除数的符号相同,例:x%y 中 为 x 的符号 (结果的绝对值与x、y都为正数时相同)
2、x%y 中如果 x < y 则结果为x
3、0%x 结果为 0
4、x%0 除0错误
Math.floorMod(x,y) (取模):
1、简单记忆:与y符号相同
2、x > y:结果的绝对值与 % 运算相同
3、x < y:①符号相同 结果的绝对值为 y - x ;②符号不同 结果的绝对值与 % 运算相同
x | y | x%y | Math.floorMod(x,y) |
---|---|---|---|
- | + | - | + |
+ | - | + | - |
- | - | - | - |
+ | + | + | + |