有没有办法创建一个没有最大小数位数的 NumberFormat
实例?一个明显的解决方案是
NumberFormat format = NumberFormat.getNumberInstance();
format.setMaximumFractionDigits(Integer.MAX_VALUE);
但我想知道是否有更明确的方法来指定不应该有精度限制。
最佳答案
来自 NumberFormat API ( http://docs.oracle.com/javase/7/docs/api/java/text/NumberFormat.html ):
"setParseIntegerOnly
:仅影响解析,例如,如果为 true,"3456.78"-> 3456(并在索引 6 之后离开解析位置)如果为 false,则为 "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
关于java - 没有最大小数位数的 NumberFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24460873/