Bei der Darstellung numerischer Daten kann es schwierig sein, Präzision und Lesbarkeit in Einklang zu bringen, insbesondere beim Umgang mit Gleitkommazahlen. Punktzahlen. Das Problem tritt beim Drucken dieser Zahlen auf, was häufig zu nachgestellten Nullen oder unnötigen Dezimalstellen führt.
Problem:
Erwägen Sie die Verwendung von Doppeltypen zur Darstellung aller numerischen Werte, einschließlich ganze Zahlen. Das Drucken dieser Pseudo-Ganzzahlen als Doubles führt jedoch zu dem Problem, dass bei kleinen Werten Nullen nachgestellt werden.
Gewünschte Ausgabe:
Das Ziel besteht darin, Doubles sauber zu drucken Format, das nachgestellte Nullen für ganzzahlige Werte unterdrückt und gleichzeitig die Genauigkeit für tatsächliche Werte beibehält doubles.
Lösung:
Um diese Situation effektiv zu bewältigen, kann eine benutzerdefinierte Formatierungsfunktion implementiert werden, die die Tatsache nutzt, dass double ganze Zahlen bis zu 2 präzise darstellen kann53. Die Funktion mit dem Namen fmt(double d) funktioniert wie folgt:
if (d == (long) d) { return String.format("%d", (long) d); } else { return String.format("%s", d); }
Dies ermöglicht das Drucken von Pseudo-Ganzzahlen als Ganzzahlen unter Verwendung des Formatbezeichners %d, während tatsächliche Doppelzahlen ihre Genauigkeit unter Verwendung von %s behalten Bezeichner.
Beispielausgabe:
Die benutzerdefinierte Formatierungsfunktion erzeugt Folgendes Ausgabe:
232 0.18 1237875192 4.58 0 1.2345
Leistungsoptimierung:
Durch die Vermeidung von Zeichenfolgenmanipulation gewährleistet die fmt-Funktion eine effiziente Leistung. Im Gegensatz dazu würden Lösungen, die auf dem Abschneiden von Nullen basieren, aufgrund von String-Operationen zu erheblichen Leistungseinbußen führen.
Das obige ist der detaillierte Inhalt vonWie können wir Gleitkommazahlen präzise formatieren, um unnötige Nullen zu vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!