从 double 中删除 1.8E1

Remove 1.8E1 from double

当你有一个大双数:1000000000D 结果被压缩成 1.0E8,如何让它打印出 1000000000 而不是 1.0E8。

注意:10000000000.10 也会发生。

要解决,只需使用 BigDecimal 或 DecimalFormat,使用 DecimalFormat 你不能再编辑数量,因为它现在是一个字符串,但使用 BigDecimal 会减慢你的程序。

取决于您的打印方式,但一般答案是,使用 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));

您可以按照 page

中所述使用格式化标志
double num = 1000000000D;
System.out.format("%10.2f", num);   // --> 1000000000.00