长话短说这是我的代码抛出数字格式异常: -
String percenta = "6.415";
holder.setPercent(Double.parseDouble(percenta));
我已经尝试了一个Double.valueOf(),但它们都没有工作,仍然抛出相同的异常
这是异常消息
java.lang.NumberFormatException: For input string: "6.415"
这里似乎有什么问题?
修改
所以问题在于我的编码毕竟是如何改变的, 我使用JSOUP来解析页面,它应该是UTF-8, 是Double.parseDouble不是UTF-8友好吗?
答案 0 :(得分:3)
尝试使用:
NumberFormat format = NumberFormat.getInstance(Locale.US);
Number number = format.parse("6.415");
double d = number.doubleValue();
这可能是因为您的内部Locale规范。
为了验证它,检查它是否有效:
String percenta = "6,415";
holder.setPercent(Double.parseDouble(percenta));
答案 1 :(得分:2)
我猜这是因为您的计算机运行的是非英语语言环境。尝试使用Double.valueOf(“6.415”)作为英语语言环境,或者查看Best way to parseDouble with comma as decimal separator?以获取有关解析的更多信息。
答案 2 :(得分:2)
变量名称percenta
的选择表明您使用的是区域设置sk-SK
。
区域设置的小数点分隔符为,
,而不是.
。
答案 3 :(得分:1)
6.415
是有效值,不应抛出NumberFormatException
检查你的编码。当我复制粘贴您的代码时,保存它时出错。
答案 4 :(得分:0)
Double解析时不支持'percenta =“6.415”'的编码。
我尝试复制代码时请检查以下错误。
答案 5 :(得分:0)
问题在于6.415。您似乎正在使用没有兼容字符编码的键盘。