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