2012-03-07 57 views

回答

9

正確格式化。例如:

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

+1

+1提到缺乏雙精度可能是問題的一部分。 – 2012-03-07 13:45:38

+0

感謝您使用BigDecimal的提示 – Lepo 2012-03-07 13:47:34

2

你可以使用String.format()

System.out.println(String.format("%.0f", 1654621658874684.0d)); // prints 1654621658874684 
+0

謝謝你的快速回復 – Lepo 2012-03-07 13:44:57

0

String formatted = String.format("%f", dblNumber);

0

我使用類似

if((long) d == d) 
    System.out.println((long) d); 
else 
    System.out.println(d); 

長可以有18位,而double充其量具有精度15-16位。