Heim >Java >javaLernprogramm >Warum gibt der Modulo-Operator von Java negative Ergebnisse für negative Eingaben zurück?

Warum gibt der Modulo-Operator von Java negative Ergebnisse für negative Eingaben zurück?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-02 04:50:02659Durchsuche

Why Does Java's Modulo Operator Return Negative Results for Negative Inputs?

Modulo vs. Rest in Java verstehen

In Java berechnet der Modulo-Operator (%) den Rest, nachdem eine Zahl durch eine andere dividiert wurde. Im Gegensatz zum Modulo-Operator von Python gibt die Modulo-Operation von Java negative Werte für negative Eingaben zurück. Dies kann zu unerwarteten Ergebnissen führen, wie die Berechnung von -1 % 2 sowohl in Python als auch in Java zeigt.

Auflösen der Diskrepanz

Um das gleiche Verhalten wie Pythons Modulo zu erreichen Operator in Java können Sie die folgenden Techniken anwenden:

  • Verwenden Sie eine Formel: Wenden Sie die Formel (((-1 % 2) 2) % 2) an, um immer a zu erhalten positives Ergebnis für den Rest.
  • Negative Werte prüfen:Anstatt den Modulo-Operator zu verwenden, prüfen Sie, ob das Ergebnis der Division negativ ist. Wenn dies der Fall ist, addieren Sie den Nenner zum Ergebnis, um einen positiven Wert zu erhalten.

Beispielcode:

<code class="java">int i = (((-1 % 2) + 2) % 2);</code>

oder

<code class="java">int i = -1 % 2;
if (i < 0) i += 2;</code>

Durch die Verwendung dieser Techniken können Sie sicherstellen, dass sich die Modulo-Operation in Java konsistent mit dem Modulo-Operator von Python verhält und die erwarteten positiven Restwerte liefert.

Das obige ist der detaillierte Inhalt vonWarum gibt der Modulo-Operator von Java negative Ergebnisse für negative Eingaben zurück?. 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