Saya memiliki BigDecimal
lapangan amount
yang mewakili uang, dan saya perlu untuk mencetak nilainya di browser dalam format seperti $123.00
, $15.50
, $0.33
.
Bagaimana saya bisa melakukan itu?
(Satu-satunya solusi sederhana yang saya lihat sendiri dapatkan floatValue
dari BigDecimal
dan kemudian gunakan NumberFormat
untuk membuat presisi dua digit untuk bagian pecahan).
Untuk mengatur ribuan pemisah, katakanlah
123,456.78
Anda harus menggunakan DecimalFormat :Inilah hasilnya:
Meskipun saya mengatur
#,###.00
mask, itu berhasil memformat nilai yang lebih panjang juga. Perhatikan bahwa pemisah koma (,) bergantung pada lokal Anda. Mungkin hanya spasi () untuk bahasa Rusia.sumber
"#,##0.00"
sebagai gantinya.Cara lain yang masuk akal untuk situasi tertentu adalah
Saya hanya mengatakan ini karena dalam beberapa kasus ketika datang ke uang melebihi 2 tempat desimal tidak masuk akal. Mengambil langkah ini lebih jauh, ini bisa mengarah ke
tetapi saya hanya ingin menyoroti metode setScale (yang juga dapat menggunakan argumen mode pembulatan kedua untuk mengontrol bagaimana tempat desimal terakhir ditangani. Dalam beberapa situasi, Java memaksa Anda untuk menentukan metode pembulatan ini).
sumber
// mencetak 3.14
// mencetak 13
sumber
Mirip dengan jawaban oleh @Jeff_Alieffson, tetapi tidak mengandalkan default
Locale
:Gunakan
DecimalFormatSymbols
untuk lokal eksplisit:Atau simbol pemisah eksplisit:
Kemudian:
Hasil:
sumber
sumber