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です。任意精度の浮動小数点数が必要な場合は、double
の代わりにBigDecimal
を使用してください。
あなたはString.format()
使用することができます
System.out.println(String.format("%.0f", 1654621658874684.0d)); // prints 1654621658874684
クイック返信ありがとう – Lepo
String formatted = String.format("%f", dblNumber);
私はdouble
が最高の状態で精度の15〜16桁の数字を持っているのに対し、長い18桁を持つことができます
if((long) d == d)
System.out.println((long) d);
else
System.out.println(d);
のようなものを使用。
+1倍精度での精度の欠如が問題の一部である可能性があることに言及してください。 –
BigDecimalのチップをありがとう – Lepo