区别
取余是数学中的概念,取模是计算机中的概念,两者都是求两数相除的余数
1.当两数符号相同时,结果相同,比如:7%4 与 7 Mod 4 结果都是3
2.当两数符号不同时,结果不同
例子:
(-7)%4=-3
(-7)Mod4=1
取余运算,求商采用fix函数,向0方向舍入,取 -1。因此 (-7) % 4 商 -1 余数为 -3
取模运算,求商采用 floor 函数,向无穷小方向舍入,取 -2。因此 (-7) Mod 4 商 -2 余数为 1
取余
取余运算符 (%):一个表达式的值除以另一个表达式的值,返回余数
例子:
7%4 //3
-7%3 //-1
取模
取模运算可采用如下公式:
Number.prototype.mod = function(n) {
return ((this % n) + n) % n;
}
// 或
function mod(n, m) {
return ((n % m) + m) % m;
}
具体使用:
mod(-7, 3) //2
(-7).mod(3) //2
(7).mod(3) //1