Заставьте двойника написать целое число - PullRequest
4 голосов
/ 07 марта 2012

Как я могу заставить double в Java печатать целое число. Не как 1.65462165887E12. Но как 1654621658874684?

Спасибо

Ответы [ 4 ]

10 голосов
/ 07 марта 2012

Отформатируйте его соответствующим образом. Например:

System.out.printf("%.1f", 1654621658874684.0);

Или вы можете использовать его как строку:

//"%.1f" this mean, how many number after the comma
String value = String.format("%.1f", 1654621658874684.0);

Помните, что double не бесконечно точен. Он имеет точность от 15 до 17 десятичных цифр . Если вам нужны числа с плавающей точкой с произвольной точностью, используйте BigDecimal вместо double.

2 голосов
/ 07 марта 2012

Вы можете использовать String.format():

System.out.println(String.format("%.0f", 1654621658874684.0d)); // prints 1654621658874684
0 голосов
/ 07 марта 2012

Я использую что-то вроде

if((long) d == d)
  System.out.println((long) d);
else
  System.out.println(d);
Длина

может содержать 18 цифр, тогда как double имеет в лучшем случае 15-16 цифр.

0 голосов
/ 07 марта 2012

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

...