2016-07-25 29 views
0

对于像ES-CO某些地区的货币错小数点标记格式,我得到的NumberFormat小数大关的货币是不正确的:的NumberFormat显示了某些地区

NumberFormat numberFormat = 
NumberFormat.getCurrencyInstance(new Locale("es", "CO")); 
numberFormat.setCurrency(Currency.getInstance("COP")); 

String currencyString = numberFormat.format(164900.12); 
System.out.println(currencyString); 

此我得到的结果为164.900, 21而当我检查的网站如:http://www.xe.com/currencyconverter/convert 我得到它的其他方式,即164,900.21 这是一个NumberFormat类的问题,或者我做错了什么。

+0

尝试新的区域设置(“es_CO”)。欲了解更多信息http://www.oracle.com/technetwork/java/javase/javase7locales-334809.html – Unknown

+1

丹麦人使用逗号作为小数点分隔符。 https://en.wikipedia.org/wiki/Decimal_mark – Bathsheba

+0

按照此链接https://www.ibm.com/support/knowledgecenter/SSS28S_8.1.0/XFDL/i_xfdl_r_formats_es_CO.html和http://www.localeplanet。 com/java/es-CO/index.html你所得到的是正确的 – SameeraB

回答

0

请检查Locale类的则除外语言第一构造函数,然后国家代码

public Locale(String language, String country) { 
    this(language, country, ""); 
} 

改变这样的代码,你会得到输出这样的“COP 164,900.12”

NumberFormat numberFormat = NumberFormat.getCurrencyInstance(new Locale(
       "CO", "es")); 
+0

我已经添加了语言第一。西班牙语是西班牙语,CO是哥伦比亚。 – Ajay