JavaScript 模运算符中意外的负结果
在 JavaScript 中使用模运算符 (%) 计算负数时,可能会产生令人惊讶的结果。例如,Google 计算器中的 (-13) % 64 等于 51,而在 JavaScript 中则返回 -13。
理解问题
JavaScript 的模运算符计算余数除法之后,但它不会像谷歌计算器这样的数学运算那样对负数应用相同的逻辑。在 JavaScript 中,模运算符返回一个与第一个操作数具有相同符号的值。
修复问题
要纠正此行为并确保与数学运算的一致性,您可以使用以下模运算符的自定义实现:
Number.prototype.mod = function (n) { "use strict"; return ((this % n) + n) % n; };
用法
定义自定义模方法后,您可以使用它来计算余数负数:
console.log((-13).mod(64)); // Outputs 51
此更正后的行为与预期的数学结果一致,并确保不同平台上的行为一致。
以上是为什么 JavaScript 的模运算符会产生负数的意外结果?的详细内容。更多信息请关注PHP中文网其他相关文章!