Saya mengalami beberapa masalah saat memformat desimal ganda. Jika saya memiliki nilai ganda, misalnya 4.0, bagaimana cara memformat desimal sehingga menjadi 4,00?
java
formatting
double
decimal
Christoffer
sumber
sumber
String.format()
ataujava.text.Format
.Jawaban:
Salah satunya adalah dengan menggunakan NumberFormat .
Keluaran:
4.00
sumber
Dengan Java 8, Anda dapat menggunakan
format
metode ..: -f
digunakan untukfloating
nilai poin ..2
setelah desimal menunjukkan, jumlah tempat desimal setelahnya.
Untuk sebagian besar versi Java, Anda dapat menggunakan
DecimalFormat
: -sumber
Gunakan String.format :
String.format("%.2f", 4.52135);
Sesuai dokumen:
sumber
Menggunakan String.format, Anda dapat melakukan ini:
Perhatikan koma yang membuatnya berbeda dari jawaban @ Vincent
Keluaran:
$52,000.00
Sumber yang bagus untuk memformat adalah halaman java resmi tentang masalah ini
sumber
Anda selalu bisa menggunakan metode statis
printf from System.out
- Anda kemudian akan mengimplementasikan formatter yang sesuai; ini menghemat ruang heap di mana contoh lain harus Anda lakukan.Ex:
Menghemat ruang tumpukan yang merupakan bonus yang cukup besar, namun saya berpendapat bahwa contoh ini jauh lebih mudah dikelola daripada jawaban lainnya, terutama karena sebagian besar pemrogram mengetahui fungsi printf dari C (Java mengubah sedikit fungsi / metode).
sumber
out
adalahPrintStream
.printf
adalah metode statisPrintStream
. Lihat di sini ;) Tapi tetap saja +1.sumber
sumber
Metode alternatif adalah menggunakan
setMinimumFractionDigits
metode dariNumberFormat
kelas.Di sini Anda pada dasarnya menentukan berapa banyak angka yang ingin Anda munculkan setelah koma desimal.
Jadi masukan
4.0
akan menghasilkan4.00
, dengan asumsi jumlah yang Anda tentukan adalah 2.Tetapi, jika
Double
masukan Anda berisi lebih dari jumlah yang ditentukan, maka akan mengambil jumlah minimum yang ditentukan, lalu tambahkan satu digit lagi dibulatkan ke atas / bawahMisalnya,
4.15465454
dengan jumlah minimal 2 yang ditentukan akan menghasilkan4.155
Cobalah secara online
sumber
Ada banyak cara untuk melakukan ini. Itu diberikan di bawah ini:
Misalkan nomor asli Anda diberikan di bawah ini:
Menggunakan NumberFormat:
Menggunakan String.format:
Menggunakan DecimalFormat dan pola:
Menggunakan DecimalFormat dan pola
Dalam semua kasus, outputnya adalah: 2354548.23
Catatan :
Selama pembulatan, Anda dapat menambahkan
RoundingMode
formatter Anda. Berikut adalah beberapa mode pembulatan yang diberikan di bawah ini:Berikut impornya :
sumber
Anda dapat menggunakan salah satu metode di bawah ini
Jika Anda menggunakan
java.text.DecimalFormat
ATAU
Jika Anda ingin mengubahnya menjadi format string sederhana
Semua kode di atas akan mencetak 4,00
sumber
Bekerja 100%.
sumber
Impor pertama
NumberFormat
. Kemudian tambahkan ini:Ini akan memberi Anda dua tempat desimal dan memberi tanda dolar jika berhubungan dengan mata uang.
sumber
Anda dapat melakukannya sebagai berikut:
sumber
##
alih-alih00
Saya tahu bahwa ini adalah topik lama, tetapi Jika Anda benar-benar ingin memiliki titik dan bukan koma, simpan saja hasil Anda sebagai X, 00 ke dalam String dan kemudian cukup ubah untuk jangka waktu sehingga Anda mendapatkan X.00
Cara termudah adalah dengan menggunakan replace.
Outputnya adalah X.00 yang Anda inginkan. Juga untuk membuatnya mudah Anda bisa melakukan semuanya sekaligus dan menyimpannya menjadi variabel ganda:
Saya tahu bahwa balasan ini tidak berguna sekarang tetapi mungkin seseorang yang memeriksa forum ini akan mencari solusi cepat seperti ini.
sumber