Pertanyaan Pembulatan DecimalFormat


Ini kode kecil untuk menggambarkan apa yang saya lihat

float floater = 59.999f;

DecimalFormat df = new DecimalFormat("00.0");

System.out.println(df.format(floater));

Cetakan ini:

60.0

Saya ingin mencetaknya

59.9

Apa yang harus saya lakukan?


13
2018-06-22 22:09


asal


Jawaban:


Tambahkan baris ini sebelum menggunakan DecimalFormat:

df.setRoundingMode(RoundingMode.DOWN);

Lihatlah mode pembulatan lainnya dan lihat mana yang terbaik untuk Anda.

Catatan: metode ini hanya berfungsi di JDK 1.6 atau lebih tinggi


23
2018-06-22 22:15



float d = 59.999f;
BigDecimal bd = new BigDecimal(d);
// Use the returned value from setScale, as it doesn't modify the caller.
bd = bd.setScale(1, BigDecimal.ROUND_FLOOR);
String formatted = bd.toString();

1
2018-06-22 22:14