我希望能够将双倍价格格式化为特定于语言环境的格式。您可以使用以下代码实现此目的:
NumberFormat.getCurrencyInstance(locale).format(20.0);
但是,仅支持 21 个语言环境,我需要支持的不仅仅是这些国家/地区。如果能够根据 ISO 国家代码格式化价格,那就太好了。例如,给定 ISO 国家代码CAN我想将价格格式化为$20.00等。
java支持这个吗?如果没有,是否有可以实现此目的的开源版本(例如日期的 joda time)?
我希望能够将双倍价格格式化为特定于语言环境的格式。您可以使用以下代码实现此目的:
NumberFormat.getCurrencyInstance(locale).format(20.0);
但是,仅支持 21 个语言环境,我需要支持的不仅仅是这些国家/地区。如果能够根据 ISO 国家代码格式化价格,那就太好了。例如,给定 ISO 国家代码CAN我想将价格格式化为$20.00等。
java支持这个吗?如果没有,是否有可以实现此目的的开源版本(例如日期的 joda time)?
您可以Locale
根据需要的语言和国家/地区创建一个。默认情况下,Java 将其中一些语言环境作为常量,但它支持 200 多个国家/地区:
Locale locale = new Locale("es", "pe"); //Spanish, Peru
更多信息:
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