我正在嘗試類NumberFormat
的方法和功能,我已經達到了一個奇怪的結果。我編譯和運行下面的程序:NumberFormat setMaximumFractionDigits方法
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();
}
}
輸出是:
Max: 3
Min: 0
4527.9997539
4,528
這意味着,它沒有考慮任何分數數字。如果我取消註釋:
nf.setMaximumFractionDigits(4);
輸出爲:
Max: 3
Min: 0
4527.9997539
4,527.9998
換句話說,它的工作原理確定。在方法setMaximumFractionDigits()
中實際發生了什麼,並且它在第一種情況下不會帶有包含3個小數位的數字?
你的意思是手動設置數字的小數位嗎? –