ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript のモジュラス演算子が負の数値で予期しない結果を生成するのはなぜですか?

JavaScript のモジュラス演算子が負の数値で予期しない結果を生成するのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-26 02:22:12769ブラウズ

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

負の数値に対する JavaScript の剰余演算子の動作

JavaScript では、剰余演算子 (%) は除算演算の剰余を計算します。ただし、負の被除数値の場合、数学的規則や他のプログラミング言語とは動作が異なります。

負の被除数に対して剰余演算を実行すると、JavaScript は負の剰余を返しますが、数学的計算や他のほとんどのプログラミング言語では正の剰余が返されます。 1つ。これは次の例で証明できます:

  • Google Calculator: (-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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。