Страницы

Поиск по вопросам

среда, 11 декабря 2019 г.

Как вывести только два знака после запятой?

#java


Ребят всем привет. Есть число double res, допустим, 0.1321231;. Как вывести только 0.13?
Знаю, что можно вывести так: 
System.out.printf("%.2f", res);

но только что это значит? Как можно вывести стандартно через System.out.println?     


Ответы

Ответ 1



printf подразумевает форматирование строки в дополнение к выводу, только и всего. Для получения форматированной строки без вывода надо использовать String.format(). String formattedDouble = String.format("%.2f", 0.1321231); http://docs.oracle.com/javase/tutorial/java/data/numberformat.html

Ответ 2



Чуть правильнее и быстрее будет использовать DecimalFormat. String formattedDouble = new DecimalFormat("#0.00").format(0.1321231); Само собой, строку формата "#0.00" стоит вынести куда-нибудь в константу, возможно, общую на все приложение. Целиком вытаскивать объект new DecimalFormat("#0.00") в константу, напротив не стоит из соображений потокобезопасности. Выигрыш в производительности по сравнению со String.format() может быть что-то около 2х раз. Плюс DecimalFormat использует настройки локали для разделителя целой и дробной частей.

Ответ 3



String formattedDouble = new DecimalFormat("#0.00").format(0.1321231); Вот этот способ отлично оставляет две цифры после запятой.

Ответ 4



Если java не поддерживает DecimalFormat, то придется так: Float value = 0.123f; String result = String.format("%8.2f", value).replace(',', '.');

Комментариев нет:

Отправить комментарий