从 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 df = new DecimalFormat("#");
System.out.println(df.format(10000000000000000000.0));
您可以按照 page
中所述使用格式化标志
double num = 1000000000D;
System.out.format("%10.2f", num); // --> 1000000000.00
当你有一个大双数: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 df = new DecimalFormat("#");
System.out.println(df.format(10000000000000000000.0));
您可以按照 page
中所述使用格式化标志double num = 1000000000D;
System.out.format("%10.2f", num); // --> 1000000000.00