JavaScript 取模与取余

除法

商是 令其与分子乘积的绝对值 不超过 分母的绝对值 且最接近的数

(-10) / 3 = -3 余 -1

10 / (-3) = -3 余 1

(-10) / (-3) = 3 余 -1

取余与取模

取余是数学中的概念,取模是计算机中的概念,两者都是求两数相除的余数

  • 当两数符号相同时,结果相同
    7%4 与 7 Mod 4 结果都是3
  • 当两数符号不同时,结果不同
    (-7)%4=-3
    (-7)Mod4=1

(-7) / 4 = -1.75

取余运算,求商采用fix函数,向0方向舍入,取 -1。因此 (-7) % 4 商 -1 余数为 -3

取模运算,求商采用 floor 函数,向无穷小方向舍入,取 -2。因此 (-7) Mod 4 商 -2 余数为 1

JavaScript 算术运算符

求余 %

JS中 % 是取余运算,非取模运算

取模运算可采用如下公式

Number.prototype.mod = function(n) { return ((this % n) + n) % n; } // 或 function mod(n, m) { return ((n % m) + m) % m; }