【问题标题】:decimal format for big numbers in javajava中大数的十进制格式
【发布时间】:2015-08-01 14:43:33
【问题描述】:

在 Java 中使用 DecimalFormat 对象格式化数字时,我注意到它可以支持的最大数字是“1,000,000,000”,所以我尝试将它乘以 10,如下所示:

DecimalFormat df = new DecimalFormat("#,###,###,###.##########");

System.out.println(df.format(1000000000*10));

这就是我得到的:

1,410,065,408

我没看懂这个结果,应该是1E10吧?

你们中有人知道如何解决这个问题吗?

谢谢

【问题讨论】:

    标签: java decimalformat


    【解决方案1】:

    问题不在于DecimalFormat,而在于您的整数。

    当您执行1000000000*10 时,它超出了int 类型的范围并导致1410065408

    您需要改为使用long 数字执行操作。

    System.out.println(df.format(1000000000l*10)); // Notice the l for long.
    

    然后您将看到正确的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-11
      • 2013-02-27
      • 1970-01-01
      相关资源
      最近更新 更多