Wie kann ich NumberFormat
verwenden, um einen double
Wert für eine gegebene Locale
(Standardgebietsschema ist ausreichend) und für eine gegebene Anzahl von Dezimalstellen zu formatieren?Wie formatieren Doppelwert für ein bestimmtes Gebietsschema und die Anzahl der Dezimalstellen?
Zum Beispiel habe ich diese Werte:
double d1 = 123456.78;
double d2 = 567890;
Und ich mag, dass sie in der folgenden Art und Weise drucken, zum Beispiel mit dem US-Gebietsschema und 2 Dezimalstellen:
123,456.78
567,890.00
I don‘ In diesem Fall ist der Rundungsmodus tatsächlich wichtig, da diese doppelten Werte von einer BigDecimal
mit dem gegebenen Maßstab erhalten werden, so dass ihre Anzahl an Dezimalstellen immer kleiner oder gleich der Anzahl der Dezimalstellen ist, die ich drucken möchte.
Edit:
Um die Dinge ein wenig klarer zu machen, ist das, was ich Geld in eine locale abhängig angezeigt werden soll, aber mit einer festen Anzahl von Dezimalstellen. Im obigen Beispiel wurde gezeigt, wie die Werte formatiert werden sollen, wenn das Gebietsschema des Systems lautet. Jetzt kann sagen, das Systemgebietsschema ist cs_CZ
(Tschechisch), so dass die gleichen Zahlen sollten auf diese Weise formatiert werden:
123 456,78
567 890,00
Nun, wie kann ich eine Number bis zu immer zwei Dezimalstellen angezeigt werden, aber angezeigt werden Tausendertrennzeichen und Dezimalpunkt basierend auf dem aktuellen Gebietsschema?
Vielen Dank – Sayka
@ Paweł Dyda Wie soll ich einen String 123,456.78 in US locale zu einem doppelten Wert 123456.78 konvertieren? – KJEjava48