ホームページ >ウェブフロントエンド >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;
};

この関数は、次のことを保証します。モジュロの結果は常に正であり、次の数学的定義と一致します。 modulo.

使用法:

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

説明:

カスタム mod 関数は、最初にネイティブ関数を使用して剰余を計算します。 JavaScript モジュロ演算子。次に、除数 (n) を余りに加算します。これにより、結果が負でないことが保証されます。最後に、2 番目のモジュロ演算を実行して、最終的な正の剰余を取得します。

この変更されたモジュロ関数は、JavaScript の動作を期待される数学的結果に合わせて調整し、負の数値を含む一貫性のある正確な計算を容易にします。

以上が負の数を使用した JavaScript のモジュロ演算子の予期しない動作を修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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