首頁 >web前端 >js教程 >如何修復 JavaScript 的負數模運算子的意外行為?

如何修復 JavaScript 的負數模運算子的意外行為?

Susan Sarandon
Susan Sarandon原創
2024-11-30 12:23:12252瀏覽

How Can I Fix the Unexpected Behavior of JavaScript's Modulo Operator with Negative Numbers?

修正JavaScript 中的負數模運算子

在JavaScript 中,模運算子(%) 傳回一個數字除以另一個數字時的餘數。但是,對於負數,JavaScript 的模運算子會出現意外行為,傳回負結果。出現此問題的原因是 JavaScript 內部使用有符號整數,該整數不適合模運算。

要解決此問題,您可以使用以下自訂 mod函數:

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

此函數可確保模結果始終為正,與數學定義一致

用法:

console.log(-13.mod(64)); // Output: 51

說明:

自訂mod函數首先使用原生計算餘數JavaScript 模運算子。然後,將除數 (n) 加到餘數中。這確保結果是非負的。最後,它執行第二次模運算以獲得最終的正餘數。

這個修改後的模函數使 JavaScript 的行為與預期的數學結果保持一致,促進涉及負數的一致和準確的計算。

以上是如何修復 JavaScript 的負數模運算子的意外行為?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn