java中大数字的十进制格式

时间:2015-08-01 14:43:33

标签: java decimalformat

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

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

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

这就是我得到的:

1,410,065,408

我不明白这个结果,不应该是1E10吗?

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

由于

1 个答案:

答案 0 :(得分:2)

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

当您执行1000000000*10时,它会超出int类型的范围,并生成1410065408

您需要使用long号码执行操作。

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

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