В Java, как я могу эффективно преобразовать плавания как 1234.56
и подобный BigDecimals в Строки как $1,234.56
Я ищу следующее:
Строка 12345.67
становится Строкой $12,345.67
Я также надеюсь делать это с Float
и BigDecimal
также.
DecimalFormat moneyFormat = new DecimalFormat("$0.00");
System.out.println(moneyFormat.format(1234.56));
Есть идиома, зависящая от локали, которая хорошо работает:
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