java - 从 double 中删除 1.8E1

标签 java double

当你有一个大的 double :1000000000D时,结果会被压缩为1.0E8,如何让它打印出1000000000而不是1.0E8。

注意:10000000000.10 也会发生。

要解决此问题,只需使用 BigDecimal 或 DecimalFormat,使用 DecimalFormat 您无法再编辑金额,因为它现在是一个字符串,但使用 BigDecimal 会减慢您的程序速度。

最佳答案

使用BigDecimal的示例

    BigDecimal bd = new BigDecimal(1000000000d, new MathContext(0));
    System.out.println(bd);

DecimalFormat

    DecimalFormat df = new DecimalFormat("#");
    System.out.println(df.format(10000000000000000000.0));

关于java - 从 double 中删除 1.8E1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31164621/

相关文章:

java - Java 中多种类型对象的高效重复检查

java - 如何从 DSpace 反馈页面的修改版本中获取引用页面(项目)的标题?

java - 如何始终将 double 值的精度设置为 ##.## 形式?

c - 我正确使用 fscanf 吗?和 switch 语句?

java - 将 Stack 类型转换为 double

java.lang.ClassNotFoundException

java - 在同一配置 Spring Security 中使用 RequestHeaderRequestMatcher 和 antmactcher basic auth

java - 当模式中有相同的表时,如何在运行时动态传递模式名称

c++ - 在 64 位操作系统上使用 32 位编译器编译的 64 位 float

java - 使用 DocumentFilter 仅接受 JTextField 中的 double 值