Mam BigDecimal
pole amount
, które reprezentuje pieniądze i muszę wydrukować swoją wartość w przeglądarce w takim formacie jak $123.00
, $15.50
, $0.33
.
Jak mogę to zrobić?
(Tylko proste rozwiązanie, które widzę siebie robi floatValue
z BigDecimal
, a następnie używając NumberFormat
do dwucyfrowego precyzji dla części frakcji).
java
formatting
bigdecimal
number-formatting
rzymski
źródło
źródło
Aby ustawić separator tysięcy, powiedz, że
123,456.78
musisz użyć DecimalFormat :Oto wynik:
Chociaż ustawiłem
#,###.00
maskę, z powodzeniem formatuje również dłuższe wartości. Zauważ, że separator przecinka (,) w wyniku zależy od ustawień regionalnych. Może to być po prostu spacja () dla rosyjskich ustawień regionalnych.źródło
"#,##0.00"
zamiast tego użyj wzorca .Innym sposobem, który może mieć sens w danej sytuacji, jest
Po prostu mówię to, ponieważ w niektórych przypadkach, jeśli chodzi o pieniądze, wykraczanie poza 2 miejsca po przecinku nie ma sensu. Posunięcie się o krok dalej może doprowadzić do
ale chciałem tylko podkreślić metodę setScale (która może również przyjąć drugi argument trybu zaokrąglania, aby kontrolować sposób obsługi ostatniego miejsca dziesiętnego. W niektórych sytuacjach Java zmusza cię do określenia tej metody zaokrąglania).
źródło
// wyświetla 3.14
// wyświetla 13
źródło
Podobna do odpowiedzi @Jeff_Alieffson, ale nie polegająca na domyślnych
Locale
:Użyj
DecimalFormatSymbols
dla wyraźnych ustawień regionalnych:Lub wyraźne symbole separatorów:
Następnie:
Wynik:
źródło
źródło