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

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

Linda Hamilton
Linda HamiltonOriginal
2024-11-17 20:41:02903Durchsuche

Why Does Integer Division in Java Produce Truncated Results?

Falle bei der Ganzzahldivision in Java: Fehlerhafte Ergebnisse verstehen und beheben

Bei der Durchführung einer Ganzzahldivision in Java tritt ein häufiger Fehler auf, bei dem es sich um den Bruchteil handelt Teil des Ergebnisses wird verworfen, was zu unerwarteten Ergebnissen führt. Dieses Problem ergibt sich aus der Tatsache, dass die Ganzzahldivision in ihrer Standardform beide Operanden als Ganzzahlen behandelt.

Betrachten Sie beispielsweise den folgenden Java-Code:

float res = quantity / standard;

Wenn Menge und Standard Sind Ganzzahlen, führt die Divisionsoperation eine Ganzzahldivision durch, was zu einem abgeschnittenen Wert führt. Dies liegt daran, dass es in einem ganzzahligen Quotienten keinen Bruchteil gibt.

Um dieses Problem zu beheben, muss man den Zähler oder Nenner explizit in einen Gleitkommatyp konvertieren. Dadurch wird die Divisionsoperation gezwungen, eine Gleitkommadivision durchzuführen, die den Bruchteil des Ergebnisses beibehält.

Ein Ansatz besteht darin, den Zähler in einen Gleitkommawert umzuwandeln, wie unten gezeigt:

float res = (float) quantity / standard;

Alternativ können Sie bei der Arbeit mit Literalen eine ordnungsgemäße Float-Konvertierung sicherstellen, indem Sie wie gezeigt das Suffix „f“ zum Nenner hinzufügen unten:

float f = 6800f / 500;

Diese Methoden stellen sicher, dass die Divisionsoperation als Gleitkommaoperation ausgeführt wird, wobei der Bruchteil erhalten bleibt und der bei der Ganzzahldivision auftretende Kürzungsfehler beseitigt wird.

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