Java DecimalFormat格式函数问题具有大的双数

时间:2015-07-07 10:01:20

标签: java format double decimalformat

    String pattern = "0.00";
    double number = 999999999999999999999d;
    DecimalFormat decimalFormat = new DecimalFormat(pattern);
    decimalFormat.applyPattern(pattern);

    System.out.println(decimalFormat.format(number));

打印1000000000000000000000.00

如何打印实际值。在这种情况下我希望999999999999999999999.00

2 个答案:

答案 0 :(得分:0)

您可以使用BigDecimal来处理大量号码。

BigDecimal类提供算术,缩放操作,舍入,比较,散列和格式转换的操作。 toString()方法提供了BigDecimal的规范表示。

答案 1 :(得分:0)

这不是DecimalFormat问题 - 999999999999999999999d确实等于1000000000000000000000。如果你想存储像这样的非常大的整数,你应该使用BigInteger class - double只有足够的精度来准确存储大约15-16个有效数字。