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

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

DDD
发布: 2024-12-01 10:52:09
原创
630 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板