Java上的Error NumberFormatException错误

时间:2016-05-11 04:22:54

标签: java android

我尝试操作要添加的值时有以下异常; 非常感谢你的帮助

java.lang.NumberFormatException: Invalid double: "20,000"
java.lang.StringToReal.invalidReal(StringToReal.java:63)
java.lang.StringToReal.parseDouble(StringToReal.java:269)
java.lang.Double.parseDouble(Double.java:295)
java.lang.Double.valueOf(Double.java:332)

2 个答案:

答案 0 :(得分:3)

您可以使用NumberFormat来解析String 1 。像,

String str = "20,000";
NumberFormat nf = NumberFormat.getNumberInstance(new Locale("en_US"));
NumberFormat nfIT = NumberFormat.getNumberInstance(Locale.ITALIAN); 
try {
    System.out.println(nf.parse(str)); // <-- 20000
    System.out.println(nfIT.parse(str)); // <-- 20
} catch (ParseException e) {
    e.printStackTrace();
}

有关更多选项,请参阅Customizing Formats (The Java Tutorials)

1 确保传递适当的Locale以匹配您的预期输出。

答案 1 :(得分:-1)

您不要在数字中使用逗号作为分隔符。

您必须使用20000代替20,000

编辑:

正如@MitchWeaver所提到的那样,你也可以用逗号取代逗号,使其成为20_000