在使用DecimalFormat对象格式化Java中的数字时,我注意到它可以支持的最大数字是" 1,000,000,000",所以我试图将它乘以10,如下所示:
DecimalFormat df = new DecimalFormat("#,###,###,###.##########");
System.out.println(df.format(1000000000*10));
这就是我得到的:
1,410,065,408
我不明白这个结果,不应该是1E10吗?
你们其中任何人都知道如何解决这个问题吗?
由于
答案 0 :(得分:2)
问题不在于DecimalFormat
,而在于你的整数。
当您执行1000000000*10
时,它会超出int
类型的范围,并生成1410065408
。
您需要使用long
号码执行操作。
System.out.println(df.format(1000000000l*10)); // Notice the l for long.
然后您将看到正确的结果。