Heim  >  Artikel  >  Java  >  Warum führt die Ganzzahldivision in Java zu unerwarteten Ergebnissen?

Warum führt die Ganzzahldivision in Java zu unerwarteten Ergebnissen?

Susan Sarandon
Susan SarandonOriginal
2024-11-16 06:17:03515Durchsuche

Why Does Integer Division in Java Produce Unexpected Results?

Ganzzahldivision: Das unerwartete Verhalten verstehen

In Java führt die Ganzzahldivision eine Division zwischen zwei Ganzzahlwerten durch und verwirft den Bruchteil des Ergebnisses . Dieses Verhalten kann zu unerwarteten Ergebnissen führen, wie im folgenden Code gezeigt:

int quantity = 6800;
int standard = 500;
float res = quantity / standard;

Erwartetes Ergebnis: 13,6

Tatsächliches Ergebnis: 13,0

Eine Erklärung für diese Diskrepanz liegt darin in der durchgeführten Ganzzahldivision. Bei der Ganzzahldivision wird das Ergebnis abgeschnitten, wodurch der Bruchteil verloren geht. Um das richtige Ergebnis zu erhalten, müssen wir erzwingen, dass die Division als Gleitkommadivision behandelt wird.

Dies kann erreicht werden, indem der Zähler explizit in Gleitkomma umgewandelt wird:

float res = (float) quantity / standard;

Alternativ Wenn wir es mit Literalen zu tun haben, können wir das Suffix „f“ an den Nenner anhängen, um eine Gleitkommazahl anzuzeigen:

float res = 6800f / 500;

Durch die Verwendung Durch die Float-Division verhindern wir eine ganzzahlige Division und bewahren den Bruchteil des Ergebnisses. Dieser Ansatz wird durchweg das erwartete Ergebnis liefern: 13.6.

Das obige ist der detaillierte Inhalt vonWarum führt die Ganzzahldivision in Java zu unerwarteten Ergebnissen?. 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