Locale.GERMAN似乎没有货币符号。 Locale.GERMANY将欧元符号作为其货币(不是字符串“EUR”)。请注意,下面的blam1和blam3导致解析异常,CurrencyFormat对象只喜欢blam2。
NumberFormat numberFormat = NumberFormat.getCurrencyInstance(Locale.GERMANY);
System.out.println("75.13 euro: " + numberFormat.format(75.13));
try {
System.out.println("Parsed blam1: " + numberFormat.parse("EUR 75,11"));
} catch (ParseException exception) {
System.out.println("Parse Exception1: " + exception);
}
try {
System.out.println("Parsed blam2: " + numberFormat.parse("75,12 €"));
} catch (ParseException exception) {
System.out.println("Parse Exception2: " + exception);
}
try {
System.out.println("Parsed blam3: " + numberFormat.parse("€ 75,13"));
} catch (ParseException exception) {
System.out.println("Parse Exception3: " + exception);
}我怀疑你需要找到一个符合你需要的开源货币解析器,或者你自己写一个。