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

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

DDD
リリース: 2024-11-20 00:52:02
オリジナル
1064 人が閲覧しました

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

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート