JavaScript のモジュロ演算子で予期しない負の結果が発生する
JavaScript で負の数にモジュロ演算子 (%) を使用すると、予期しない結果が生じる可能性があります。たとえば、(-13) % 64 は Google 電卓では 51 に相当しますが、JavaScript では -13 を返します。
問題の理解
JavaScript のモジュロ演算子は剰余を計算しますただし、Google 電卓のような算術演算と同じロジックを負の数に適用するわけではありません。 JavaScript では、モジュロ演算子は最初のオペランドと同じ符号を持つ値を返します。
問題の修正
この動作を修正し、数学的演算との一貫性を確保するには、次のようにします。次のモジュロ演算子のカスタム実装を使用できます。
Number.prototype.mod = function (n) { "use strict"; return ((this % n) + n) % n; };
使用法
カスタム モジュロ メソッドを定義したら、それを使用して剰余を計算できます。負の数の場合:
console.log((-13).mod(64)); // Outputs 51
この修正された動作は、予想される数学的結果と一致しており、異なるプラットフォーム間で一貫した動作が保証されます。
以上がJavaScript のモジュロ演算子が負の数値で予期しない結果を生成するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。