Heim >Java >javaLernprogramm >Wie kann ich in Java Doubles mit präziser Formatierung drucken und unnötige nachgestellte Nullen vermeiden?
Angesichts der Fähigkeit eines 64-Bit-Doubles, Ganzzahlen innerhalb eines Bereichs präzise darzustellen, entsteht beim Drucken gemischter Ganzzahlen und eine Herausforderung doppelte Werte. Während String.format("%f") eine enge Formatierung bereitstellt, fügt es für kleine Werte unnötige nachgestellte Nullen hinzu.
Suche nach einer Lösung:
Das Ziel ist das Drucken Ganzzahlige Werte werden als Doppelwerte ohne dezimale Nullen gespeichert, wobei eine hohe Genauigkeit für tatsächliche Doppelwerte beibehalten wird. Zum Beispiel angesichts dieser Eingaben:
Die gewünschte Ausgabe wäre sein:
Effizient Formatierung:
Um die Formatierung zu optimieren, können wir die Tatsache ausnutzen, dass ganzzahlige Werte präzise als 64-Bit-Doubles dargestellt werden können. Das folgende Java-Code-Snippet erreicht dies, ohne auf leistungsintensive String-Manipulationen zurückgreifen zu müssen:
public static String fmt(double d) { if (d == (long) d) return String.format("%d", (long) d); else return String.format("%s", d); }
Erklärung:
Ergebnis:
Bei Anwendung auf die Beispieleingaben entspricht die Ausgabe dem gewünschten Format:
232 0.18 1237875192 4.58 0 1.2345
Das obige ist der detaillierte Inhalt vonWie kann ich in Java Doubles mit präziser Formatierung drucken und unnötige nachgestellte Nullen vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!