如何阻止Java缩短大型双倍?

Jon*_*ski 3 java double numbers

我们假设我们有以下代码:

System.out.println(String.valueOf(100000000000.0));
Run Code Online (Sandbox Code Playgroud)

现在输出到1.0E11.但这不是我想要的.(在高分上看起来很糟糕)我希望它输出正好100000000000.0.有没有办法做到这一点?

Ima*_*iri 6

适当格式化.例如:

System.out.printf("%.1f", 1654621658874684.0);
Run Code Online (Sandbox Code Playgroud)

请注意,double不是无限精确的.它的精度约为15到17位十进制数.如果需要具有任意精度的浮点数,请使用BigDecimal而不是double.

或者您可以使用String.format():

System.out.println(String.format("%.0f", 1654621658874684.0d));
Run Code Online (Sandbox Code Playgroud)