Reputation: 53
How can I force a double
in Java to print the whole number. Not like 1.65462165887E12.But like 1654621658874684?
Thanks
Upvotes: 5
Views: 11832
Reputation: 206786
Format it appropriately. For example:
System.out.printf("%.1f", 1654621658874684.0);
Or you can use it like a String:
//"%.1f" this mean, how many number after the comma
String value = String.format("%.1f", 1654621658874684.0);
Be aware that double
is not infinitely precise. It has a precision of about 15 to 17 decimal digits. If you need floating-point numbers with arbitrary precision, use BigDecimal
instead of double
.
Upvotes: 11
Reputation: 533482
I use something like
if((long) d == d)
System.out.println((long) d);
else
System.out.println(d);
long can have 18 digits whereas double
has 15-16 digits of accuracy at best.
Upvotes: 0
Reputation: 328598
You could use String.format()
:
System.out.println(String.format("%.0f", 1654621658874684.0d)); // prints 1654621658874684
Upvotes: 2