Ich versuche, einige Zahlen in einem Java-Programm zu formatieren. Die Zahlen sind sowohl doppelte als auch ganze Zahlen. Wenn ich mit Doppelzahlen arbeite, möchte ich nur zwei Dezimalstellen beibehalten, aber wenn ich ganze Zahlen bearbeite, möchte ich, dass das Programm sie nicht beeinflusst. Mit anderen Worten:Java: Verwenden Sie DecimalFormat, um doubles und Integers zu formatieren, aber Ganzzahlen ohne ein Dezimal-Trennzeichen zu behalten
Doubles - Eingang
14.0184849945
Doubles - Ausgabe
14.01
Ganze Zahlen - Eingang
13
Ganze Zahlen - Ausgabe
13 (not 13.00)
Gibt es eine Möglichkeit, dies in der selben DecimalFormat-Instanz zu implementieren? Mein Code ist der folgende, so weit:
DecimalFormat df = new DecimalFormat("#,###,##0.00");
DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(Locale.ENGLISH);
otherSymbols.setDecimalSeparator('.');
otherSymbols.setGroupingSeparator(',');
df.setDecimalFormatSymbols(otherSymbols);
Warum müssen nicht es das gleiche sein 'DecimalFormat' Instanz? Was ist falsch daran, 2 'DecimalFormat'-Instanzen zu haben, eine, um zwei Ziffern nach dem Komma zu behalten, und eine, die keine Ziffern nach dem Komma hat? – rgettman
Da die Zahlen, die das Programm jedes Mal formatiert, entweder doppelte oder ganze Zahlen sind, ohne den Typ vor der Bildung zu kennen. Also möchte ich dieselbe Instanz, die "versteht", ob eine Zahl doppelt ist, um zusätzliche Dezimalpunkte zu trimmen - oder es ist eine ganze Zahl -, um sie unbeeinflusst zu lassen. – Lefteris008