Currency code to currency symbol mapping

烈酒焚心 提交于 2019-12-03 05:46:34

You can use the Currency object's getSymbol method.

What symbol is used depends on the Locale which is used See this and this.

Update, Jan 2016: The links are now dead. But they were specific to Java 1.4/5 so not really relevant anymore. More details on currency formatting can be found in https://docs.oracle.com/javase/tutorial/i18n/format/numberFormat.html. The links can be found on the WayBackEngine though.

Kevin D

@artjomka

I was able to reproduce your problem by setting my default locale to Latvia

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

This gave me the output of "EUR".

However, by leaving setting my locale to Uk (already my default) I get the symbol for the Euro(€).

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

You can use Currency class and DecimalFormat class for achieve your requirement. In following example, # represents number and ¤ represents currency symbol, you can find relevant format parameters in java API doc for DecimalFormat class.

        Currency currency = Currency.getInstance("USD");

        DecimalFormat decimalFormat = new DecimalFormat("#¤");
        decimalFormat.setCurrency(currency);
        System.out.println(decimalFormat.format(234));
Delfino

You should call Currency.getSymbol(Locale) rather than Currency.getSymbol() (without a locale object). Setting the default locale gives you the behavior that you want.

Never blindly append currency symbols (that assumes that append is the locale-appropriate position of the currency symbol). I18n-unsafe practice. Same with the "#¤" string (for locales with prefix currency symbol, this is incorrect)

brabenetz

There is a code-Snippet in https://stackoverflow.com/a/15343675/702345

But be careful:

  • One Currency can have multiple symbols. E.g.: USD has also the Symbol "US$" for Local "es_US" (at least on Java8, Win7 on my VM)
  • Difference Currencies can have the same symbols, e.g.: USD, AUD
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!