Apa cara terbaik untuk memformat nomor berikut yang diberikan kepada saya sebagai sebuah String?
String number = "1000500000.574" //assume my value will always be a String
Saya ingin ini menjadi String dengan nilai: 1,000,500,000.57
Bagaimana saya bisa memformatnya?
Ini juga dapat dilakukan dengan menggunakan String.format (), yang mungkin lebih mudah dan / atau lebih fleksibel jika Anda memformat banyak angka dalam satu string.
Untuk string format "%, 2f" - "," berarti grup digit yang terpisah dengan koma, dan ".2" berarti membulatkan ke dua tempat setelah desimal.
Untuk referensi tentang opsi pemformatan lain, lihat https://docs.oracle.com/javase/tutorial/java/data/numberformat.html
sumber
Setelah Anda mengonversi String Anda menjadi angka, Anda dapat menggunakannya
atau
sumber
new DecimalFormat("0.##", DecimalFormatSymbols.getInstance(locale))
Mengingat ini adalah hasil Google nomor satu
format number commas java
, inilah jawaban yang berfungsi untuk orang-orang yang bekerja dengan bilangan bulat dan tidak peduli dengan desimal.output:
sumber
Saya telah membuat utilitas pemformatan saya sendiri. Yang sangat cepat memproses format bersama dengan memberi Anda banyak fitur :)
Ini mendukung:
Kode dapat ditemukan di sini . Anda menyebutnya seperti ini:
Saya juga harus menunjukkan ini tidak menangani dukungan desimal, tetapi sangat berguna untuk nilai integer. Contoh di atas akan menampilkan "1.23M" sebagai output. Saya mungkin dapat menambahkan dukungan desimal mungkin, tetapi tidak melihat terlalu banyak digunakan untuk itu sejak itu saya mungkin juga menggabungkan ini menjadi jenis kelas BigInteger yang menangani array char [] yang dikompresi untuk perhitungan matematika.
sumber
K
atauM
artinyasumber
Anda juga dapat menggunakan solusi di bawah ini -
sumber
Anda dapat melakukan seluruh konversi dalam satu baris, menggunakan kode berikut:
Dua tanda # terakhir dalam konstruktor DecimalFormat juga bisa 0s. Either way bekerja.
sumber
Jawaban pertama berfungsi dengan sangat baik, tetapi untuk NOL / 0 akan memformat sebagai 0,00
Karenanya format #, ## 0.00 bekerja dengan baik untuk saya. Selalu uji angka yang berbeda seperti 0/100 / 2334.30 dan angka negatif sebelum digunakan untuk sistem produksi.
sumber
Inilah cara paling sederhana untuk sampai ke sana:
output: 10.987.655,88
sumber