我正在尝试从十进制字符串值创建Double对象,其中逗号是浮动分隔符。
将语言环境参数传递给vm:
-Duser.country=BR
-Duser.language=PT
String value = "500,21";
Double dob = new Double(value);
获得例外:
java.lang.NumberFormatException:对于输入字符串:“500,21”at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224) 在java.lang.Double.valueOf(Double.java:475)at java.lang.Double中。(Double.java:567)
答案 0 :(得分:1)
您可以尝试使用本地化的NumberFormat
:
String value = "500,21";
// replace the hard-coded Locale definition with your arguments, or
// Locale.getDefault(), etc.
NumberFormat nf = NumberFormat.getInstance(new Locale("pt", "BR"));
try {
Double d = nf.parse(value).doubleValue();
System.out.println(d);
}
catch (ParseException pe) {
// TODO
}
<强>输出强>
500.21
答案 1 :(得分:0)