我尝试使用方法将此字符串“10 000.00”转换为双精度Double.valueOf
,但出现输入格式错误:
java.lang.NumberFormatException: For input string: "10 000.00"
如何将其转换为双倍?
您可以使用:
Double.valueOf(input.replaceAll("[ ]",""));
为了在尝试转换之前删除空格。
示例:
public static void main(String[] args) {
System.out.print(Double.valueOf("10 000.00".replaceAll("[ ]","")));
}
输出:
10000.0
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
我在上面的评论中看到您输入的特殊空间。我认为我的代码将有助于解决:D
String number = input.replaceAll("[^0-9\\.]", "");
System.out.println(Double.valueOf(number));
当然,你在 和 之间有10
空格000
。转换前将其删除。
尝试添加replaceAll
:
Double.valueOf(str.replaceAll("[ ]+",""));
Double.parse(String); //
它是 Double 类的静态方法,将接受一个字符串并返回一个双精度值。希望有帮助