java – NumberFormat setMaximumFractionDigits方法

前端之家收集整理的这篇文章主要介绍了java – NumberFormat setMaximumFractionDigits方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试类 NumberFormat方法功能,我已经达到了一个奇怪的结果.我编译并运行以下程序:
public static void main(String[] args) {

Locale loc = Locale.US;
    NumberFormat nf = NumberFormat.getInstance(loc);
    System.out.println("Max: "+nf.getMaximumFractionDigits());
    System.out.println("Min: "+nf.getMinimumFractionDigits());
    try {
        Number d = nf.parse("4527.9997539");
        System.out.println(d);
        // nf.setMaximumFractionDigits(4);
        System.out.println(nf.format(4527.999753));
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

输出是:

Max: 3
Min: 0
4527.9997539
4,528

这意味着它没有考虑任何分数.如果我取消注释该行:

nf.setMaximumFractionDigits(4);

输出是:

Max: 3
Min: 0
4527.9997539
4,527.9998

换句话说,它运作正常.方法setMaximumFractionDigits()实际发生了什么,并且在第一种情况下它不会带来包含3个小数位的数字?

解决方法

我终于找到了答案.方法setMaximumFractionDigits()仅对方法format()有效.它与parse()无关.在我的代码片段中,我在手动将小数位数设置为4之后使用方法format(),因此它会影响结果.

猜你在找的Java相关文章