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
Freigeben: 2024-11-02 04:50:02
Original
658 Leute haben es durchsucht

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>
Nach dem Login kopieren

oder

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

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage