无法根据区域设置解析十进制数 "el-GR"
Not able to parse Decimal number based on locale "el-GR"
我无法理解:
public static void main(String... arg) {
//el_GR
// Locale locale = new Locale("el", "GR");
Locale locale = Locale.ENGLISH;
NumberFormat numberFormat = DecimalFormat.getInstance(locale);
try {
Number value = numberFormat.parse("170.0");
System.out.println(value.doubleValue());
} catch (ParseException e) {
e.printStackTrace();
}
}
使用Locale.ENGLISH时显示170.0
但是当使用 Greek-Greece 时,它显示 1700.0
为什么 Java 无法解析 el-GR 的十进制数?我应该为这个语言环境定义一个吗?
更新:
谢谢大家的帮助...显然我不是希腊人而且我的数学很糟糕......将关闭这个问题。
不同的文化使用不同的字符作为对方的decimal separator and as the digit grouping delimiter. Some use FULL STOP for one, and COMMA。有些,反之亦然。有些使用 SPACE 或其他一些字符。
十二万三千可以显示为以下格式之一或其他格式,具体取决于文化规范:
United States: 123,456.789
Greece: 123.456,789
希腊使用 COMMA 作为小数分隔符,使用 FULL STOP 对数字进行分组。因此,您在希腊语言环境下输入中的点被解释为放错位置的分组。因此结果是 1700。
我无法理解:
public static void main(String... arg) {
//el_GR
// Locale locale = new Locale("el", "GR");
Locale locale = Locale.ENGLISH;
NumberFormat numberFormat = DecimalFormat.getInstance(locale);
try {
Number value = numberFormat.parse("170.0");
System.out.println(value.doubleValue());
} catch (ParseException e) {
e.printStackTrace();
}
}
使用Locale.ENGLISH时显示170.0 但是当使用 Greek-Greece 时,它显示 1700.0
为什么 Java 无法解析 el-GR 的十进制数?我应该为这个语言环境定义一个吗?
更新: 谢谢大家的帮助...显然我不是希腊人而且我的数学很糟糕......将关闭这个问题。
不同的文化使用不同的字符作为对方的decimal separator and as the digit grouping delimiter. Some use FULL STOP for one, and COMMA。有些,反之亦然。有些使用 SPACE 或其他一些字符。
十二万三千可以显示为以下格式之一或其他格式,具体取决于文化规范:
United States: 123,456.789
Greece: 123.456,789
希腊使用 COMMA 作为小数分隔符,使用 FULL STOP 对数字进行分组。因此,您在希腊语言环境下输入中的点被解释为放错位置的分组。因此结果是 1700。