Heim  >  Artikel  >  Java  >  Warum liefert der Modulo-Operator (%) von Java für negative Dividenden andere Ergebnisse als Python?

Warum liefert der Modulo-Operator (%) von Java für negative Dividenden andere Ergebnisse als Python?

Barbara Streisand
Barbara StreisandOriginal
2024-10-30 14:34:30342Durchsuche

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

Modulo-Verhaltensunterschied in Java und Python

In Java liefert der Modulo-Operator (%) den Rest, wenn eine Zahl durch eine andere dividiert wird. Bei negativen Dividenden gibt Python jedoch den Modul zurück, während Java den Rest zurückgibt. Der Modul ist immer positiv, während der Rest das Vorzeichen des Dividenden behält.

Um das Modulo-Verhalten von Java an das von Python anzupassen, ist eine Änderung erforderlich. Dies kann erreicht werden, indem eine weitere Modulo-Operation oder eine Anpassung des Vorzeichens des Ergebnisses hinzugefügt wird.

Zum Beispiel:

<code class="java">int i = (((-1 % 2) + 2) % 2); // adds 2 to the initial remainder and takes the modulus again</code>

oder

<code class="java">int i = -1 % 2;
if (i < 0) i += 2; // adds 2 if the initial remainder is negative</code>

Indem Sie dies tun Anpassung entspricht das Ergebnis dem erwarteten Modulverhalten in Python und stellt positive Werte für negative Dividenden bei der Durchführung von Modulo-Operationen sicher.

Das obige ist der detaillierte Inhalt vonWarum liefert der Modulo-Operator (%) von Java für negative Dividenden andere Ergebnisse als Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn