Java 中的美元货币格式

2022-09-01 15:34:49

在Java中,我如何有效地将类似和相似的BigDecimals的浮点数转换为字符串,例如1234.56$1,234.56

我正在寻找以下内容:

字符串变为字符串12345.67$12,345.67

我也希望这样做。FloatBigDecimal


答案 1

有一个对区域设置敏感的习语效果很好:

import java.text.NumberFormat;

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

如果您当前的区域设置位于美国,则将打印 $120.00println

另一个例子:

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


答案 2
DecimalFormat moneyFormat = new DecimalFormat("$0.00");
System.out.println(moneyFormat.format(1234.56));