私はクラスのメソッドと機能を試しています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
はそれがOKに動作します。メソッドsetMaximumFractionDigits()
で実際に何が起こっていますか?最初のケースで3小数点の数字を含む数値は返されませんか?
数値の小数点以下の桁数を手動で設定することを意味しますか? –