3

我尝试使用方法将此字符串“10 000.00”转换为双精度Double.valueOf,但出现输入格式错误:

java.lang.NumberFormatException: For input string: "10 000.00"

如何将其转换为双倍?

4

5 回答 5

6

您可以使用:

Double.valueOf(input.replaceAll("[ ]",""));

为了在尝试转换之前删除空格。

示例

public static void main(String[] args) {
  System.out.print(Double.valueOf("10 000.00".replaceAll("[ ]","")));
}

输出

10000.0
于 2013-09-17T14:39:42.620 回答
3
java.lang.NumberFormatException For input string: "10 000.00"

您的输入字符串“10 000.00”中有空格

使用以下代码从您的 String

Double.valueOf("10 000.00".replaceAll("[^0-9\\.]", "")) // also Works with Special space like \u00A0
于 2013-09-17T14:42:30.957 回答
3

我在上面的评论中看到您输入的特殊空间。我认为我的代码将有助于解决:D

String number = input.replaceAll("[^0-9\\.]", "");
System.out.println(Double.valueOf(number));
于 2013-09-17T15:29:56.763 回答
1

当然,你在 和 之间有10空格000。转换前将其删除。

尝试添加replaceAll

Double.valueOf(str.replaceAll("[ ]+",""));
于 2013-09-17T14:39:45.913 回答
0
Double.parse(String); // 

它是 Double 类的静态方法,将接受一个字符串并返回一个双精度值。希望有帮助

于 2013-09-17T15:27:49.543 回答