У меня проблемы с форматированием десятичных знаков двойного числа. Если у меня двойное значение, например 4.0, как мне отформатировать десятичные дроби, чтобы вместо них было 4.00?
java
formatting
double
decimal
Кристоффер
источник
источник
String.format()
илиjava.text.Format
.Ответы:
Один из способов - использовать NumberFormat .
Вывод:
4,00
источник
В Java 8 вы можете использовать
format
метод ..: -f
используется дляfloating
балла ..2
после десятичной дроби обозначает количество десятичных знаков после запятой.
Для большинства версий Java вы можете использовать
DecimalFormat
: -источник
Используйте String.format :
String.format("%.2f", 4.52135);
Согласно документам:
источник
Используя String.format, вы можете сделать это:
Обратите внимание на запятую, которая отличает это от ответа @Vincent
Вывод:
$52,000.00
Хорошим ресурсом для форматирования является официальная страница java по этой теме.
источник
Вы всегда можете использовать статический метод
printf from System.out
- тогда вы реализуете соответствующее средство форматирования; это экономит место в куче, которое требовалось от вас в других примерах.Пример:
Экономит место в куче, что является довольно большим бонусом, тем не менее, я считаю, что этот пример намного более управляем, чем любой другой ответ, тем более, что большинство программистов знают функцию printf из C (хотя Java немного меняет функцию / метод).
источник
out
это файлPrintStream
.printf
это статический методPrintStream
. Смотрите здесь ;) Но все же +1.источник
источник
Альтернативный метод - использовать
setMinimumFractionDigits
метод изNumberFormat
класса.Здесь вы в основном указываете, сколько чисел должно появиться после десятичной точки.
Таким образом, ввод
4.0
будет производить4.00
, если ваша указанная сумма равна 2.Но, если ваш
Double
ввод содержит больше, чем указанная сумма, потребуется минимальная указанная сумма, а затем добавить еще одну цифру, округленную вверх / вниз.Например,
4.15465454
при указании минимального количества 2 будет произведено4.155
Попробуйте онлайн
источник
Есть много способов сделать это. Они приведены ниже:
Предположим, что ваш исходный номер указан ниже:
Использование NumberFormat:
Использование String.format:
Использование DecimalFormat и шаблона:
Использование DecimalFormat и шаблона
Во всех случаях вывод будет: 2354548.23
Примечание :
Во время округления вы можете добавить
RoundingMode
в свой форматер. Ниже приведены некоторые режимы округления:Вот импорт :
источник
Вы можете использовать любой из следующих методов
Если вы используете
java.text.DecimalFormat
ИЛИ
Если вы хотите преобразовать его в простой строковый формат
Весь приведенный выше код будет печатать 4.00
источник
Работает на 100%.
источник
Первый импорт
NumberFormat
. Затем добавьте это:Это даст вам два десятичных разряда и знак доллара, если он имеет дело с валютой.
источник
Сделать это можно следующим образом:
источник
##
вместо00
Я знаю, что это старая тема, но если вам действительно нравится использовать точку вместо запятой, просто сохраните результат как X, 00 в String, а затем просто измените его на период, чтобы получить X.00
Самый простой способ - просто заменить.
Результатом будет желаемый X.00 . Также, чтобы упростить задачу, вы можете сделать все это за один раз и сохранить в переменной типа double:
Я знаю, что этот ответ сейчас бесполезен, но, возможно, кто-то, кто проверяет этот форум, будет искать быстрое решение, подобное этому.
источник