Ich arbeite an einem internationalen Projekt und habe festgestellt, dass in Java die Wahl des Dezimaltrennzeichens von der Sprache des Gebietsschemas abhängt, nicht von dessen Land. Zum Beispiel:
DecimalFormat currencyFormatter = (DecimalFormat) NumberFormat.getInstance(new Locale("it","IT"));
System.out.println(currencyFormatter.format(-123456.78));
currencyFormatter = (DecimalFormat) NumberFormat.getInstance(new Locale("en","IT"));
System.out.println(currencyFormatter.format(-123456.78));
ergibt die folgende Ausgabe:
-123.456,78
-123,456.78
Ich hätte erwartet, dass es sich nach dem Land richtet, denn wenn ich mich in dem Land befinde, egal ob ich Englisch oder Italienisch spreche, werden die Zahlen in diesem Land mit dem Dezimaltrennzeichen als Komma geschrieben.
Meine Frage ist eine doppelte:
- Weiß jemand, warum dieses Verhalten der Sprache folgt?
- Was noch wichtiger ist: Kann mir jemand sagen, wie ich das Standardverhalten in Java ändern kann, um stattdessen der Sprache zu folgen?
Danke.