Ich habe ein BigDecimal
Feld , amount
das Geld repräsentiert, und ich brauche seinen Wert im Browser in einem Format wie zu drucken $123.00
, $15.50
, $0.33
.
Wie kann ich das machen?
(Die einzige einfache Lösung , die ich selbst sehen wird immer floatValue
aus BigDecimal
und dann mit NumberFormat
machen zweistelliger Präzision für den Bruchteil).
java
formatting
bigdecimal
number-formatting
römisch
quelle
quelle
Angenommen ,
123,456.78
Sie müssen DecimalFormat verwenden, um das Tausendertrennzeichen festzulegen :Hier ist das Ergebnis:
Obwohl ich die
#,###.00
Maske festgelegt habe, werden auch die längeren Werte erfolgreich formatiert. Beachten Sie, dass das Komma-Trennzeichen im Ergebnis von Ihrem Gebietsschema abhängt. Es kann nur Leerzeichen () für das russische Gebietsschema sein.quelle
"#,##0.00"
stattdessen das Muster .Ein anderer Weg, der für die gegebene Situation sinnvoll sein könnte, ist
Ich sage das nur, weil es in einigen Fällen keinen Sinn macht, wenn Geld über 2 Dezimalstellen hinausgeht. Wenn Sie noch einen Schritt weiter gehen, könnte dies dazu führen
Ich wollte jedoch nur die setScale-Methode hervorheben (die auch ein zweites Rundungsmodusargument verwenden kann, um zu steuern, wie diese letzte Dezimalstelle behandelt wird. In einigen Situationen zwingt Java Sie, diese Rundungsmethode anzugeben).
quelle
// druckt 3.14
// druckt 13
quelle
Ähnlich wie bei der Antwort von @Jeff_Alieffson, jedoch ohne Standard
Locale
:Verwendung
DecimalFormatSymbols
für explizites Gebietsschema:Oder explizite Trennzeichen:
Dann:
Ergebnis:
quelle
quelle