1

我希望能够将双倍价格格式化为特定于语言环境的格式。您可以使用以下代码实现此目的:

NumberFormat.getCurrencyInstance(locale).format(20.0);

但是,仅支持 21 个语言环境,我需要支持的不仅仅是这些国家/地区。如果能够根据 ISO 国家代码格式化价格,那就太好了。例如,给定 ISO 国家代码CAN我想将价格格式化为$20.00等。

java支持这个吗?如果没有,是否有可以实现此目的的开源版本(例如日期的 joda time)?

4

2 回答 2

2

您可以Locale根据需要的语言和国家/地区创建一个。默认情况下,Java 将其中一些语言环境作为常量,但它支持 200 多个国家/地区:

Locale locale = new Locale("es", "pe"); //Spanish, Peru

更多信息:

于 2012-10-02T04:54:23.267 回答
0
NumberFormat f = NumberFormat.getInstance(loc);
if (f instanceof DecimalFormat) {
    ((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true);
}

你试过 DecimalFormat 它有很多方法来自定义输出请在这里检查各种 setMethods:http: //docs.oracle.com/javase/8/docs/api/java/text/DecimalFormat.html#method.summary

于 2012-10-02T04:50:30.630 回答