2012-03-07 11 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です。任意精度の浮動小数点数が必要な場合は、doubleの代わりにBigDecimalを使用してください。

+1

+1倍精度での精度の欠如が問題の一部である可能性があることに言及してください。 –

+0

BigDecimalのチップをありがとう – Lepo

2

あなたはString.format()使用することができます

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

クイック返信ありがとう – Lepo

0

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

0

私はdoubleが最高の状態で精度の15〜16桁の数字を持っているのに対し、長い18桁を持つことができます

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

のようなものを使用。

関連する問題