如何从货币代码获取NumberFormat实例?
问题内容:
如何获得与ISO 4217货币代码(例如“ EUR”或“
USD”)相对应的NumberFormat
(或DecimalFormat
)实例,以便正确设置价格格式?
注意1: 我遇到的问题是
NumberFormat
/DecimalFormat
类有一个
getCurrencyInstance(Locale locale)
方法,但是我不知道如何Locale
从ISO 4217货币代码获取对象。注意2: 还有一个
java.util.Currency
类具有一个getInstance(String currencyCode)
方法(Currency
为给定的ISO
4217货币代码返回实例),但是我仍然无法弄清楚如何从Currency
对象到NumberFormat
实例。
问题答案:
我不确定我是否理解正确,但是您可以尝试执行以下操作:
public class CurrencyTest
{
@Test
public void testGetNumberFormatForCurrencyCode()
{
NumberFormat format = NumberFormat.getInstance();
format.setMaximumFractionDigits(2);
Currency currency = Currency.getInstance("USD");
format.setCurrency(currency);
System.out.println(format.format(1234.23434));
}
}
输出:
1,234.23
请注意,我分别设置了小数位数的最大数量,NumberFormat.setCurrency并没有达到小数位数的最大数量:
设置格式化货币值时此数字格式使用的货币。这不会更新数字格式使用的最小或最大小数位数。