Tôi đang thử các phương pháp và chức năng của lớp NumberFormat
và tôi đã đạt đến kết quả lạ. Tôi biên dịch và chạy chương trình sau đây:NumberFormat setMaximumFractionDigits method
public static void main(String[] args) {
Locale loc = Locale.US;
NumberFormat nf = NumberFormat.getInstance(loc);
System.out.println("Max: "+nf.getMaximumFractionDigits());
System.out.println("Min: "+nf.getMinimumFractionDigits());
try {
Number d = nf.parse("4527.9997539");
System.out.println(d);
// nf.setMaximumFractionDigits(4);
System.out.println(nf.format(4527.999753));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Đầu ra là:
Max: 3
Min: 0
4527.9997539
4,528
Điều đó có nghĩa rằng nó không đưa vào tài khoản bất kỳ chữ số phân số. Nếu tôi bỏ ghi chú dòng:
nf.setMaximumFractionDigits(4);
đầu ra là:
Max: 3
Min: 0
4527.9997539
4,527.9998
Nói cách khác nó hoạt động OK. Điều gì thực sự xảy ra với phương thức setMaximumFractionDigits()
và nó không mang số chứa 3 số thập phân trong trường hợp đầu tiên?
Bạn có ý định đặt các vị trí thập phân của một số theo cách thủ công không? –