2016-07-25 13 views
0

Für einige Orte wie es-CO zeigt, ich die Number Dezimal Marke Währung als falsch erhalten:Number falsch Dezimalzeichen Format für Währungen für einige Gegenden

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

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

für das ich das Ergebnis als 164.900 bin immer, 21 während ich einchecke Websites wie: http://www.xe.com/currencyconverter/convert bekomme ich es anders herum dh 164,900.21 Ist dies ein Problem mit NumberFormat Klasse oder mache ich etwas falsch.

+0

Versuchen Sie es mit einem neuen Gebietsschema ("es_CO"). Für weitere Informationen http://www.oracle.com/technetwork/java/javase/javase7locales-334809.html – Unknown

+1

Die Dänen verwenden das Komma als Dezimaltrennzeichen. https://en.wikipedia.org/wiki/Decimal_mark – Bathsheba

+0

Gemäß diesem Link https://www.ibm.com/support/knowledgecenter/SSS28S_8.1.0/XFDL/i_xfdl_r_formats_es_CO.html und http: //www.localeplanet. com/java/es-CO/index.html was Sie bekommen, ist richtig – SameeraB

Antwort

0

Bitte überprüfen Sie den Konstruktor der Locale-Klasse ist es die Sprache zuerst und dann den Ländercode mit Ausnahme

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

Ändern Sie den Code wie diese werden Sie eine Ausgabe wie diese „COP 164,900.12“

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

Ich habe zuerst Sprache nur hinzugefügt. es für spanisch und CO ist für kolumbien. – Ajay