Bewahrung der Präzision bei der Gleitkommaformatierung
In Java werden Gleitkommazahlen häufig mit String.format("%f") formatiert führt zu unerwünschten Dezimalnullen hinter kleinen Werten. Um dieses Problem anzugehen, wird ein maßgeschneiderter Ansatz vorgeschlagen, um Ganzzahlen von Doppelzahlen zu unterscheiden und sie entsprechend zu formatieren.
Die bereitgestellte Lösung nutzt die Tatsache, dass 64-Bit-Doppelzahlen Ganzzahlen innerhalb eines bestimmten Bereichs genau darstellen können. Es prüft, ob der Double-Wert seinem Long-Integer-Casting entspricht. Bei „true“ wird der Wert mithilfe von String.format("%d") als Ganzzahl formatiert. Andernfalls wird es mit String.format("%s") als Double mit der minimal erforderlichen Genauigkeit formatiert.
Durch die Einbindung dieser Logik entfernt die Lösung effektiv unnötige Dezimalnullen aus Ganzzahlwerten und behält gleichzeitig die Genauigkeit für die tatsächlichen Werte bei Doppel. Es ist keine String-Manipulation erforderlich, wodurch ein damit verbundener Leistungsverlust vermieden wird.
Als Ergebnis lautet die Ausgabe:
232 0.18 1237875192 4.58 0 1.2345
Beachten Sie, dass dieser Ansatz aufgrund der Abhängigkeit von dem Gebietsschema abhängt String.format. Beachten Sie bei Verwendung dieser Methode mögliche Formatierungsunterschiede basierend auf den Gebietsschemaeinstellungen des Benutzers.
Das obige ist der detaillierte Inhalt vonWie kann ich Gleitkommazahlen in Java präzise formatieren und gleichzeitig unnötige nachgestellte Nullen vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!