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

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

Barbara Streisand
Barbara Streisandオリジナル
2024-10-30 14:34:30404ブラウズ

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

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