java - 没有最大小数位数的 NumberFormat

标签 java number-formatting

有没有办法创建一个没有最大小数位数的 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/

相关文章:

javascript - 如何使用 RegEx 忽略第一个句点并匹配所有后续句点?

java - 如何将像 Quickfixj 这样的 TCP 服务器实现集成到 Spring-Integration 项目中?

java - togglegroup.getSelectedToogle() 始终返回 null JavaFX

java - 读取 Avro 文件给出 AvroTypeException : missing required field error (even though the new field is declared null in schema)

javascript - 在浏览器中以i18n兼容方式以紧凑的符号显示大量数字(例如:将122025999显示为122M或1.2十亿)

android - 设置法国电话号码的格式

java - Lucene 查询范围

java - 幂函数计算器介绍

javascript - 如何在angularjs中对数字进行复数化和格式化

java - 如何格式化 double ,使其永远不会显示科学记数法?