在Java中使用DecimalFormat对象格式化数字时,我注意到它可以支持的最大数字是“1,000,000,000”,所以我尝试将其乘以10,如下所示:
DecimalFormat df = new DecimalFormat("#,###,###,###.##########");
System.out.println(df.format(1000000000*10));
这就是我得到的:
1,410,065,408
我不明白这个结果,不是应该是1E10吗?
你们有人知道如何解决这个问题吗?
谢谢
最佳答案
问题不在于 DecimalFormat
,而在于您的整数。
当您执行 1000000000*10
时,它超出了 int
类型的范围并导致 1410065408
。
您需要使用长
数字来执行该操作。
System.out.println(df.format(1000000000l*10)); // Notice the l for long.
然后您将看到正确的结果。
关于java - java中大数的十进制格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31763062/