java 中是否有任何库可以格式化货币值?
Is there any library to format currency values in java?
我有双倍的货币代码和价值。需要为 Currencies.I 尝试使用 NumberFormat 和 Locale 进行格式化,但在这种情况下,例如 EURO 具有与国家相关的不同 Locale。我怎样才能做到这一点?欧元有通用格式吗?
format.setCurrency(Currency.getInstance("EUR"));
format.setMaximumFractionDigits(2);
System.out.println(format.format(dbl));
Locale[] locales = NumberFormat.getAvailableLocales();
for(Locale lo : locales){
NumberFormat format = NumberFormat.getCurrencyInstance(lo);
if(NumberFormat.getCurrencyInstance(lo).getCurrency().getCurrencyCode().equals("EUR")){
System.out.println( NumberFormat.getCurrencyInstance(lo).getCurrency().getCurrencyCode()+"-"+lo.getDisplayCountry() +"-"+NumberFormat.getCurrencyInstance(lo).getCurrency().getSymbol() +format.format(dbl));
}
}```
在您检查显示欧元值的不同格式之前,让 Java 为您进行转换。
这样使用java.text.NumberFormat
class:
NumberFormat currFormatter = NumberFormat.getCurrencyInstance(Locale.GERMANY);
double money = 2000000;
System.out.println(currFormatter .format(money));
以上代码输出:
2.000.000,00 €
根据需要选择Locale
。
我一直在使用 icu4j 库,它非常适合这个目的。它有许多数字格式化程序,包括货币格式化程序。请检查以下代码:
final com.ibm.icu.text.NumberFormat rule = RuleBasedNumberFormat.getCurrencyInstance(new Locale("en", "EU"));
System.out.println(rule.format(1054979.30));
它将打印:€1,054,979.30
有许多配置可以帮助您调整输出。
编辑:
如果你想根据那个传递货币代码和格式,下面是它的代码:
final com.ibm.icu.text.NumberFormat rule = RuleBasedNumberFormat.getCurrencyInstance();
rule.setCurrency(Currency.getInstance("EUR"));
System.out.println(rule.format(1054979.30));
我有双倍的货币代码和价值。需要为 Currencies.I 尝试使用 NumberFormat 和 Locale 进行格式化,但在这种情况下,例如 EURO 具有与国家相关的不同 Locale。我怎样才能做到这一点?欧元有通用格式吗?
format.setCurrency(Currency.getInstance("EUR"));
format.setMaximumFractionDigits(2);
System.out.println(format.format(dbl));
Locale[] locales = NumberFormat.getAvailableLocales();
for(Locale lo : locales){
NumberFormat format = NumberFormat.getCurrencyInstance(lo);
if(NumberFormat.getCurrencyInstance(lo).getCurrency().getCurrencyCode().equals("EUR")){
System.out.println( NumberFormat.getCurrencyInstance(lo).getCurrency().getCurrencyCode()+"-"+lo.getDisplayCountry() +"-"+NumberFormat.getCurrencyInstance(lo).getCurrency().getSymbol() +format.format(dbl));
}
}```
在您检查显示欧元值的不同格式之前,让 Java 为您进行转换。
这样使用java.text.NumberFormat
class:
NumberFormat currFormatter = NumberFormat.getCurrencyInstance(Locale.GERMANY);
double money = 2000000;
System.out.println(currFormatter .format(money));
以上代码输出:
2.000.000,00 €
根据需要选择Locale
。
我一直在使用 icu4j 库,它非常适合这个目的。它有许多数字格式化程序,包括货币格式化程序。请检查以下代码:
final com.ibm.icu.text.NumberFormat rule = RuleBasedNumberFormat.getCurrencyInstance(new Locale("en", "EU"));
System.out.println(rule.format(1054979.30));
它将打印:€1,054,979.30
有许多配置可以帮助您调整输出。
编辑:
如果你想根据那个传递货币代码和格式,下面是它的代码:
final com.ibm.icu.text.NumberFormat rule = RuleBasedNumberFormat.getCurrencyInstance();
rule.setCurrency(Currency.getInstance("EUR"));
System.out.println(rule.format(1054979.30));