Heim  >  Artikel  >  Java  >  Warum schneidet die Ganzzahldivision in Java Brüche ab?

Warum schneidet die Ganzzahldivision in Java Brüche ab?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-20 02:56:01351Durchsuche

Why Does Integer Division in Java Truncate Fractions?

Lösung für Inkonsistenzen bei der Ganzzahldivision

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!

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