货币代码到货币符号的映射

2022-09-03 04:53:55

美好的一天,在数据库中有表格与房屋出售记录。对于每个房屋记录,都有货币代码(ISO 4217格式)字段。是否有可能以某种方式从该代码中获取货币符号,以便我可以在演示端使用它?

谢谢。

P.S. 试图解决将 Currency 对象(由 Currency.getInstance(currencyCode)创建)设置为 DecimalNumberFormat setCurrency 方法,然后格式化我需要显示的值,但格式化的值仍然没有货币符号。


答案 1

@artjomka

我能够通过将默认区域设置设置为拉脱维亚来重现您的问题

Locale.setDefault(new Locale("lv","LV"));
Currency c  = Currency.getInstance("EUR");
System.out.println(c.getSymbol());

这给了我“EUR”的输出。

但是,通过将我的区域设置保留为Uk(已经是我的默认值),我得到了欧元(€)的符号。

Locale.setDefault(Locale.UK);
Currency c  = Currency.getInstance("EUR");
System.out.println(c.getSymbol());

答案 2

您可以使用对象的 getSymbol 方法。Currency

使用什么符号取决于所使用的区域设置 请参阅此。

2016 年 1 月更新:这些链接现在已经死了。但它们是特定于Java 1.4 / 5的,因此不再真正相关。有关货币格式的更多详细信息,请参阅 https://docs.oracle.com/javase/tutorial/i18n/format/numberFormat.html。不过,这些链接可以在WayBackEngine上找到。