有没有办法创建一个没有最大分数位的NumberFormat
实例?一个明显的解决方案是
NumberFormat format = NumberFormat.getNumberInstance();
format.setMaximumFractionDigits(Integer.MAX_VALUE);
但我想知道是否有更明确的方式来指定不应该有精度限制。
答案 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