在货币中添加符号

时间:2019-11-10 08:58:27

标签: java number-formatting

我正在使用Java NumberFormat显示货币,并且想要添加货币 符号 ,例如: 港元:港币 加元:CA $ 新加坡元:S $ ...

美元,英镑,欧元等。

NumberFormat是否可以自动添加那些内容?或者您可以推荐其他解决方案?

2 个答案:

答案 0 :(得分:0)

我找到了以下库:The Java Money and Currency API。它是JSR 354:用于货币和货币的Java api的实现。

这是我发现的代码,它产生的内容接近所需的要求(例如,澳元:1.00澳元):

    MonetaryAmount oneAuDDollar = Monetary.getDefaultAmountFactory()
        .setCurrency("AUD").setNumber(1).create();

    MonetaryAmountFormat format = MonetaryFormats.getAmountFormat(
        AmountFormatQueryBuilder.of(Locale.US)
            .set(CurrencyStyle.SYMBOL)
            .set("pattern", "¤ #,##0.00###")
            .build());

    String formatted = format.format(oneAuDDollar);

    System.out.println(formatted);

输出:A$ 1.00

答案 1 :(得分:-1)

看看这个website(首次Google搜索)

//JDK 11

NumberFormat nF = NumberFormat.getNumberInstance(); 

System.out.println("Initially Currency: " + nF.getCurrency().getSymbol()); 

nF.setCurrency(Currency.getInstance(Locale.CANADA));

System.out.println("Currency set as: " + nF.getCurrency().getSymbol()); 

将打印:

Initially Currency: $
Currency set as: CA$

对于JDK 8,您需要 getSymbol()和语言环境

//JDK 8

nF.setCurrency(Currency.getInstance(Locale.JAPAN));

System.out.println("Currency set as: " + nF.getCurrency().getSymbol(Locale.JAPAN));

也将显示符号

Currency set as: ¥