首頁 > web前端 > js教程 > 為什麼 JavaScript 的模運算子會產生負數的意外結果?

為什麼 JavaScript 的模運算子會產生負數的意外結果?

Patricia Arquette
發布: 2024-11-26 02:22:12
原創
757 人瀏覽過

Why Does JavaScript's Modulus Operator Produce Unexpected Results with Negative Numbers?

JavaScript 的負數模數運算子行為

在 JavaScript 中,模數運算子 (%) 計算的餘數。然而,它對於負被除數值的表現與數學約定和其他程式語言不同。

對負被除數執行模數運算時,JavaScript 傳回負餘數,而數學計算和大多數其他程式語言產生正餘數一。這可以透過以下範例來示範:

  • Google 計算器:(-13) % 64 = 51(預期結果)
  • JavaScript:console.log(-13 % 64) = -13(錯誤結果)

解決問題

為了在JavaScript 中獲得涉及負數的模運算的正確結果,我們可以使用以下自訂函數:

Number.prototype.mod = function (n) {
  "use strict";
  return ((this % n) + n) % n;
};
登入後複製

此函數,當應用於負股息時,確保回傳的餘數為正。例如:

console.log((-13).mod(64)); // Output: 51 (correct result)
登入後複製

以上是為什麼 JavaScript 的模運算子會產生負數的意外結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板