【发布时间】:2016-09-08 05:50:46
【问题描述】:
我已将最大小数位数设置为 4, 但是为什么 N.doublevalue() 的输出是 1234.56789999999 不是 1234.5679?
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。
-
参考这个链接你会得到确切的想法stackoverflow.com/questions/50532/…
-
谢谢大家。我在一本书中看到了代码,但我不知道它是如何工作的,所以试图得到答案。我现在明白了。
标签: java number-formatting digits