1

长话短说,我的代码抛出了数字格式异常:-

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 不友好吗?

4

6 回答 6

3

尝试使用:

NumberFormat format = NumberFormat.getInstance(Locale.US);
Number number = format.parse("6.415");
double d = number.doubleValue();

这可能是由于您的内部语言环境规范而发生的。

为了验证它,检查它是否有效:

String percenta = "6,415‏";
holder.setPercent(Double.parseDouble(percenta));
于 2013-06-04T10:24:07.313 回答
2

变量名称的选择percenta表明您正在使用 locale sk-SK

语言环境的小数点分隔符是,和不是.

于 2013-06-04T10:28:49.717 回答
2

我猜这是因为您的计算机运行的是非英语语言环境。尝试使用英语语言环境的 Double.valueOf("6.415"),或查看使用逗号作为小数分隔符的 parseDouble 的最佳方法?有关解析的更多信息。

于 2013-06-04T10:25:05.187 回答
1

6.415是一个有效值,不应抛出NumberFormatException.
检查您的编码。当我复制粘贴您的代码时,保存时出错。

在此处输入图像描述

于 2013-06-04T10:23:32.727 回答
0

Double 不支持 'percenta = "6.415‏"' 的编码进行解析。

当我尝试复制您的代码时,请检查以下错误。

在此处输入图像描述

于 2013-06-04T10:32:39.200 回答
0

问题出在 6.415 上。看来您使用的键盘不具有兼容的字符编码。

于 2013-06-04T10:34:24.563 回答