获取错误java.lang.NumberFormatException:对于输入字符串:“16.0”

时间:2011-07-27 06:07:20

标签: java

我想将单元格值转换为int值,因此我尝试使用以下代码:

for (int chk1 = 1; chk1 < m; chk1++ ) {
   int intCounter = Integer.parseInt( cells.checkCell(chk1,0).getValue().toString() );
}

但它只接受字符串格式,如果有任何数字,那么它给了我

java.lang.NumberFormatException

我该如何避免这种情况?有没有办法将所有数据转换为整数或转换为字符串,反之亦然?

4 个答案:

答案 0 :(得分:14)

问题是“.0”位。 Integer.parseInt只允许数字,因此小数点是非法的,因此NumberFormatException

您应确保输入确实是整数(即“16”),或者如果您确实要允许小数,则使用Double.parseDoubleFloat.parseFloat

答案 1 :(得分:1)

答案 2 :(得分:0)

尝试查看输入parseInt

的确切内容
System.out.println(cells.checkCell(chk1,0).getValue().toString());

或登录。

根据Cameron的答案,查看您正在解析的值是否有效。

答案 3 :(得分:0)

@Cameron Skinner已经通过doublefloat向您提供了如何摆脱此异常的确切提示。但如果你真的想和Integer一起玩,你可以做到

for( int chk1 = 1 ; chk1 < m ; chk1++ ) {
   int intCounter = (int)cells.checkCell(chk1,0).getValue();
}