JavaScript%(模)对负数给出了负值结果

根据谷歌计算器(-13) % 6451

根据Javascript(见这JSBin)它是-13

我该如何解决?


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

采取这篇文章:JavaScript模块错误


使用Number.prototype是SLOW,因为每次使用原型方法时,您的数字都包装在Object 。 取而代之的是:

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

使用:

function mod(n, m) {
  return ((n % m) + m) % m;
}

请参阅:http://jsperf.com/negative-modulo/2

比使用原型快97%。 如果性能对你来说当然很重要..


JavaScript中的%运算符是余数运算符,而不是模运算符(主要区别在于如何处理负数):

-1 % 8 // -1, not 7

链接地址: http://www.djcxy.com/p/58281.html

上一篇: JavaScript % (modulo) gives a negative result for negative numbers

下一篇: calculating modulo for large number