NumberFormat没有最大分数位数

时间:2014-06-27 21:16:03

标签: java number-formatting

有没有办法创建一个没有最大分数位的NumberFormat实例?一个明显的解决方案是

NumberFormat format = NumberFormat.getNumberInstance();
format.setMaximumFractionDigits(Integer.MAX_VALUE);

但我想知道是否有更明确的方式来指定不应该有精度限制。

1 个答案:

答案 0 :(得分:0)

从NumberFormat API(http://docs.oracle.com/javase/7/docs/api/java/text/NumberFormat.html):

" setParseIntegerOnly:仅影响解析,例如如果是真的," 3456.78" - >如果为false,则为(并且在索引6之后保留解析位置),#34; 3456.78" - > 3456.78(并在索引8之后保留解析位置)这与格式无关。"

我想如果你打电话给setParseIntegerOnly(false),它就不会担心精确度限制了,所以我可以用这个来解释事实。

啊哈!我们走了:

NumberFormat nf = NumberFormat.getInstance();
nf.setRoundingMode(RoundingMode.CEILING);

然后,我再也不确定"向无穷大方向前进"手段。可能你想要这个:

nf.setRoundingMode(RoundingMode.UNNECESSARY);

http://docs.oracle.com/javase/7/docs/api/java/math/RoundingMode.html