最大小数点の桁数を4、 に設定しましたが、N.doublevalue()の出力が1234.56789999999 ではなく1234.5679であるのはなぜですか?Java:Parse NumberFormatオブジェクト
try{
NumberFormat NF = NumberFormat.getInstance();
NF.setMaximumFractionDigits(4);
NF.setMinimumFractionDigits(3);
Number N = NF.parse("1234.56789999999");
System.out.println(N.doubleValue());
System.out.println(NF.format(1234.567899999));
}
catch(ParseException e){e.printStackTrace();}
}
本来の書式設定を持たない 'double'を印刷しているだけなので、 –
あなたの具体的な要件は何ですか?正確な丸めを行うには、BigDecimalを使用する必要があります。 – marthursson
このリンクを参照すると、正確なアイデアが得られますhttp://stackoverflow.com/questions/50532/how-do-i-format-a-number-in-java – Santhucool