In Java kommt es häufig zu einem Fehltritt, wenn einfache Divisionsoperationen versucht werden. Ein Szenario wie dieses, in dem eine ganzzahlige Berechnung unerwartet ins Stocken gerät, kann auf die Natur der Ganzzahldivision zurückgeführt werden.
Wenn ganze Zahlen dividiert werden, ist das Ergebnis eine ganze Zahl, wobei alle Bruchteile abgeschnitten werden. Diese Einschränkung kann im folgenden Java-Code beobachtet werden:
float res = quantity / standard;
Obwohl die Variable res als Float deklariert ist, führt die Division zweier Ganzzahlen zu einem ganzzahligen Ergebnis. Diese Diskrepanz kann zu unerwarteten Genauigkeitsfehlern führen.
Um dieses Problem zu beheben, erwägen Sie, den Zähler vor der Division explizit als Gleitkommazahl umzuwandeln:
float res = (float) quantity / standard;
Indem Sie erzwingen, dass der Zähler als a behandelt wird Float, der Nenner wird ebenfalls zum Float heraufgestuft. Dadurch wird sichergestellt, dass eine Division auf Gleitkommabasis durchgeführt wird, wobei der Bruchteil des Ergebnisses in res erhalten bleibt.
Alternativ können Sie, wenn Sie mit Literalen arbeiten, das Suffix „f“ an den Nenner hinzufügen:
float f = 6800f / 500;
Diese Modifikation erreicht den gleichen Zweck wie die explizite Umwandlung, indem sie den Nenner in Gleitkomma umwandelt, um die Ausführung einer Gleitkomma-basierten Division sicherzustellen Betrieb.
Das obige ist der detaillierte Inhalt vonWarum schneidet die Ganzzahldivision in Java Brüche ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!