【问题标题】:NumberFormat without maximum fraction digits没有最大小数位数的 NumberFormat
【发布时间】:2014-08-19 02:21:00
【问题描述】:

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

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

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

【问题讨论】:

    标签: java number-formatting


    【解决方案1】:

    来自 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(并在之后离开解析位置index 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

    【讨论】:

    • 我认为您误解了这个问题。我不想四舍五入。我想保留所有小数。
    • 我知道。我不太熟悉 NumberFormat 的操作,但我认为告诉它不要使用 RoundingMode.UNNECESSARY 进行舍入可能会奏效
    • 好吧,那么对不起。我查看了 API,但没有发现任何其他可能有助于此保护的内容
    猜你喜欢
    • 2011-12-30
    • 1970-01-01
    • 2020-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-22
    • 1970-01-01
    相关资源
    最近更新 更多