Долларовое форматирование валюты в Java

В Java, как я могу эффективно преобразовать плавания как 1234.56 и подобный BigDecimals в Строки как $1,234.56

Я ищу следующее:

Строка 12345.67 становится Строкой $12,345.67

Я также надеюсь делать это с Float и BigDecimal также.

25
задан reevesy 1 October 2012 в 11:59
поделиться

2 ответа

DecimalFormat moneyFormat = new DecimalFormat("$0.00");
System.out.println(moneyFormat.format(1234.56));
8
ответ дан 28 November 2019 в 21:13
поделиться

Есть идиома, зависящая от локали, которая хорошо работает:

import java.text.NumberFormat;

// Get a currency formatter for the current locale.
NumberFormat fmt = NumberFormat.getCurrencyInstance();
System.out.println(fmt.format(120.00));

Если ваш текущий языковой стандарт находится в США, println напечатает $ 120,00

Другой пример:

import java.text.NumberFormat;
import java.util.Locale;

Locale locale = new Locale("en", "UK");
NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);
System.out.println(fmt.format(120.00));

Будет напечатано: £ 120,00

33
ответ дан 28 November 2019 в 21:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: