How can I find out the currency sub-unit (aka minor unit) symbol in Java?

前端 未结 1 623
逝去的感伤
逝去的感伤 2021-02-12 15:29

Currency.getSymbol will give me the major symbol (e.g. \"$\" for USD) but I\'d like to get the minor unit (e.g. \"p\" for GBP or the cents symbol for USD), without writing my ow

1条回答
  •  梦谈多话
    2021-02-12 16:31

    I would like to suggest for this situation to use custom custom currency format. Use DecimalFormat or NumberFormat of java.text.* package. There are a lot of example for that.

    Example

    public class CurrencyFormatExample {
        public void currencyFormat(Locale currentLocale) {
            Double currency = new Double(9843.21);
            NumberFormat currencyFormatter;
            String currencyOut;
            currencyFormatter = NumberFormat.getCurrencyInstance(currentLocale);
            currencyOut = currencyFormatter.format(currency);
            System.out.println(currencyOut + " " + currentLocale.toString());
        }
    
        public static void main(String args[]) {
            Locale[] locales = new Locale[]{new Locale("fr", "FR"),
                new Locale("de", "DE"), new Locale("ca", "CA"),
                new Locale("rs", "RS"),new Locale("en", "IN")
            };
            CurrencyFormatExample[] formate = new CurrencyFormatExample[locales.length];
            for (int i = 0; i < locales.length; i++) {
                formate[i].currencyFormat(locales[i]);
            }
        }
    }
    

    Out put:

    9Â 843,21 â?¬ fr_FR
    
    9.843,21 â?¬ de_DE
    
    CAD 9.843,21 ca_CA
    
    RSD 9,843.21 rs_RS
    
    Rs.9,843.21 en_IN
    

    Reference here:

    Update for minor currency

      Locale locale = Locale.UK;
      Currency curr = Currency.getInstance(locale);
    
      // get and print the symbol of the currency
      String symbol = curr.getSymbol(locale);
      System.out.println("Symbol is = " + symbol);
    

    Output :

    Symbol is = £
    

    0 讨论(0)
提交回复
热议问题