首页 >web前端 >js教程 >为什么 JavaScript 的模运算符 (%) 会产生负数的意外结果?

为什么 JavaScript 的模运算符 (%) 会产生负数的意外结果?

DDD
DDD原创
2024-12-01 10:52:09711浏览

Why Does JavaScript's Modulo Operator (%) Produce Unexpected Results with Negative Numbers?

JavaScript 的负数 % 运算符:负数惊喜

模运算符 (%) 是处理余数的有用工具。然而,当 JavaScript 中出现负数时,结果可能会出乎意料。

问题:

在 (-13) % 64 等情况下,JavaScript 返回-13,而谷歌计算器等传统计算器给出的结果是正数 (51)。这种差异源于运算符对负操作数的行为。

修复:

要解决此问题,可以采用负数模运算符的自定义实现:

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

此修改确保 (-13) % 64 的结果是51,与预期的数学结果保持一致。有关更多信息,请参阅“JavaScript Modulo Bug”文章。

以上是为什么 JavaScript 的模运算符 (%) 会产生负数的意外结果?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn