Heim >Java >javaLernprogramm >Wie kann ich in Java Doubles mit präziser Formatierung drucken und unnötige nachgestellte Nullen vermeiden?

Wie kann ich in Java Doubles mit präziser Formatierung drucken und unnötige nachgestellte Nullen vermeiden?

Barbara Streisand
Barbara StreisandOriginal
2024-12-31 13:41:11618Durchsuche

How Can I Print Doubles in Java with Precise Formatting, Eliminating Unnecessary Trailing Zeros?

Gleitende Zahlen mit Präzision in Java drucken

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:

  • 232.00000000
  • 0.18000000000
  • 1237875192 .0
  • 4.5800000000
  • 0.00000000
  • 1.23450000

Die gewünschte Ausgabe wäre sein:

  • 232
  • 0,18
  • 1237875192
  • 4,58
  • 0
  • 1,2345

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:

  • Für ganzzahlige Werte, die genau dargestellt werden können Als Doubles werden sie vom Code in Long umgewandelt und mit %d formatiert. Dadurch werden unnötige nachgestellte Nullen vermieden.
  • Bei nicht ganzzahligen Werten verwendet der Code %s, um den ursprünglichen Doppelwert mit minimaler Genauigkeit beizubehalten.

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!

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