Wie schön format Fließkomma-zahlen auf String-ohne unnötige dezimal 0?

Einem 64-bit-double-integer darstellen kann +/- 253 genau

Angesichts dieser Tatsache, die ich wählen zu verwenden einen double-Typ, wie ein einziger Typ für alle meine Arten, da meine größte Ganzzahl ohne Vorzeichen 32-bit.

Aber jetzt habe ich zum ausdrucken dieser pseudo-Ganzzahlen, aber das problem ist, Sie sind auch gemischt mit tatsächlichen verdoppelt.

So wie Drucke ich diese Doppel-schön in Java?

Habe ich versucht String.format("%f", value), die in der Nähe ist, außer ich bekomme eine Menge der Nullen bei kleinen Werten.

Hier ist ein Beispiel für die Ausgabe des von %f

232.00000000 
0.18000000000 
1237875192.0 
4.5800000000 
0.00000000 
1.23450000 

Was ich will, ist:

232 
0.18 
1237875192 
4.58 
0 
1.2345 

Sicher kann ich eine Funktion schreiben, trim, jene Nullen, das ist aber viel performance-Verlust durch String-manipulation. Kann ich besser mit einem anderen format-code?

BEARBEITEN

Den Antworten von Tom E. und Jeremy S. inakzeptabel sind, da Sie sowohl willkürlich Runden auf 2 Nachkommastellen. Verstehen Sie das problem, bevor Sie antwortet.

EDIT 2

Bitte beachten Sie, dass String.format(format, args...) ist locale-abhängige (siehe Antworten unten).

Wenn Sie möchten Ganzzahlen sind, warum nicht eine lange? Erhalten Sie mehr bang zu 2^63-1 sein, keine peinlichen Formatierung und bessere performance.
Da einige Werte sind tatsächlich verdoppelt
Einige Fälle, in denen dieses problem auftrat wurde ein Fehler behoben, der in JDK 7: stackoverflow.com/questions/7564525/...
Geht es nur mir so oder ist JavaScript 100% besser bei der Zahl-zu-string-Konvertierung als Java?

InformationsquelleAutor Pyrolistical | 2009-03-31

Schreibe einen Kommentar