2013-10-10 137 views
1

此代码必须验证从findActions输入数据()方法:java.lang.NumberFormatException:对于输入字符串:“10.0”

try { 
    System.out.println(findActions(lookingArea.substring(0, right)));// always printing valid number string 
    Integer.parseInt(findActions(lookingArea.substring(0, right)));// checking for number format 
} 
catch(NumberFormatException exc) { 
    System.out.println(exc); 
} 

但我始终有java.lang.NumberFormatException: For input string: "*number*" 就是这么奇怪,因为检查System.out.println(findActions(lookingArea.substring(0, right)));

我得到*number*像10.0

+5

10.0不是整数,使用Double.parseDouble ...有类似问题的SO上有很多问题。 – kosa

+1

'10.0'不是'int'。 –

+0

工作。谢谢。 – George

回答

4

Integer.parseInt并不指望.字符。如果你确定它可以被转换为int,然后执行下列操作之一:

  1. 解析它之前消除".0"的字符串的结束,或者
  2. 呼叫Double.parseDouble,并把结果到int

引用上面的链接的Javadoc:

字符串中的字符必须都是十进制数字,不同的是 第一个字符可以是ASCII减号“ - ”(“\ u002D”)为到 表示负值或ASCII加号“+”('\ u002B')到 表示正值。

2

10.0不是整数。相反,您可以使用:

int num = (int) Double.parseDouble(...); 
相关问题