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!