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

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

DDD
リリース: 2024-12-01 10:52:09
オリジナル
630 人が閲覧しました

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

負の数値に対する JavaScript の % 演算子: ネガティブなサプライズ

剰余演算子 (%) は、剰余を処理するための貴重なツールです。ただし、JavaScript で負の数値を扱う場合、予期しない結果が生じる可能性があります。

問題:

(-13) % 64 のような場合、JavaScript は次の値を返します。 -13 ですが、Google 電卓などの従来の計算機では肯定的な結果が得られます (51)。この不一致は、負のオペランドを使用した演算子の動作に起因します。

修正:

この問題を克服するには、負の数に対する法演算子のカスタム実装を使用できます。 :

Number.prototype.mod = function (n) {
  "use strict";
  return ((this % n) + n) % n;
};
ログイン後にコピー

この変更により、(-13) % 64 の結果が次のようになります。 51、予想される数学的結果と一致しています。詳細については、「JavaScript Modulo のバグ」の記事を参照してください。

以上がJavaScript のモジュロ演算子 (%) が負の数値で予期しない結果を生成するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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