【发布时间】:2012-03-07 13:31:34
【问题描述】:
如何在 Java 中强制 double 打印整数。不像 1.65462165887E12。但是像 1654621658874684?
谢谢
【问题讨论】:
如何在 Java 中强制 double 打印整数。不像 1.65462165887E12。但是像 1654621658874684?
谢谢
【问题讨论】:
适当地格式化它。例如:
System.out.printf("%.1f", 1654621658874684.0);
或者你可以像字符串一样使用它:
//"%.1f" this mean, how many number after the comma
String value = String.format("%.1f", 1654621658874684.0);
请注意,double 并不是无限精确的。它的精度约为15 to 17 decimal digits。如果您需要任意精度的浮点数,请使用BigDecimal 而不是double。
【讨论】:
你可以使用String.format():
System.out.println(String.format("%.0f", 1654621658874684.0d)); // prints 1654621658874684
【讨论】:
String formatted = String.format("%f", dblNumber);
【讨论】:
我使用类似的东西
if((long) d == d)
System.out.println((long) d);
else
System.out.println(d);
long 可以有 18 位,而 double 最多有 15-16 位的准确度。
【讨论】: