Java のモジュロ演算子 (%) が負の配当に対して Python とは異なる結果を返すのはなぜですか?

Barbara Streisand
リリース: 2024-10-30 14:34:30
オリジナル
354 人が閲覧しました

Why Does Java's Modulo Operator (%) Return Different Results Than Python for Negative Dividends?

Java と Python のモジュロ動作の違い

Java では、モジュロ演算子 (%) は、ある数値を別の数値で除算するときに剰余を求めます。ただし、負の被除数の場合、Python は係数を返しますが、Java は剰余を返します。モジュラスは常に正ですが、剰余は被除数の符号を保持します。

Java のモジュロ動作を Python のものと一致させるには、変更が必要です。これは、別のモジュロ演算を追加するか、結果の符号に調整を加えることで実現できます。

例:

<code class="java">int i = (((-1 % 2) + 2) % 2); // adds 2 to the initial remainder and takes the modulus again</code>
ログイン後にコピー

または

<code class="java">int i = -1 % 2;
if (i < 0) i += 2; // adds 2 if the initial remainder is negative</code>
ログイン後にコピー

これを作成すると、調整すると、結果は Python で予期されるモジュラス動作と一致し、モジュロ演算を実行するときに負の被除数に対して正の値が保証されます。

以上がJava のモジュロ演算子 (%) が負の配当に対して Python とは異なる結果を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!