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