java - java中大数的十进制格式

标签 java decimalformat

在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 类型的范围并导致 141006540​​8

您需要使用数字来执行该操作。

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

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

关于java - java中大数的十进制格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31763062/

相关文章:

android - DecimalFormat国家问题

java - 用逗号格式化数字

java - 十进制格式答案?

java - libgdx教程: cannot open desktop application

java - 将 Spark 作业写入 NFSv3 安装卷的变音问题

java - 尝试从 Delphi 调用基于 Android JAR 的 JAVA 类时缺少类错误

java - 为葡萄牙(巴西)获取错误的语言环境

java - 十进制格式的问题

java - 自定义对象的ArrayList

当在类中声明类型参数时,Java 泛型类型会丢失常量类型