Если вы всегда хотите, чтобы формат валюты соответствовал американизированным ожиданиям, оставьте локаль как Locale.US. Если вы хотите, чтобы валюта отображалась локально, оставьте реализацию как есть. Язык управляет форматом, vs. и где появится знак валюты.
Double number = 1500D;
// Format currency for Canada locale in Canada locale,
// the decimal point symbol is a comma and currency
// symbol is $.
NumberFormat format = NumberFormat.getCurrencyInstance(Locale.CANADA);
String currency = format.format(number);
System.out.println("Currency in Canada : " + currency);
// Format currency for Germany locale in German locale,
// the decimal point symbol is a dot and currency symbol
// is €.
format = NumberFormat.getCurrencyInstance(Locale.GERMANY);
currency = format.format(number);
System.out.println("Currency in Germany: " + currency);
Результаты
Currency in Canada : $1,500.00
Currency in Germany: 1.500,00 €
Вот еще один ответ
Порядок символов валюты Android