NumberFormatException when parsing String to Float value
本问题已经有最佳答案,请猛点这里访问。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | System.out.println("Enter a number:"); String in1 = input.nextLine(); Integer input1 = Integer.valueOf(in1); Float input2 = Float.parseFloat(in1); Double input3 = Double.valueOf(in1).doubleValue(); System.out.println(); System.out.println("Enter another number:"); String in2 = input.nextLine(); Integer input21 = Integer.valueOf(in2); Float input22 = Float.parseFloat(in2); Double input23 = Double.valueOf(in2).doubleValue(); FloatN fco = new FloatN(); System.out.println(); System.out.println("The sum of both of your numbers is:" + fco.add(input2, input22)); done = true; |
我很清楚这个程序是完全不切实际的,我编写它只是为了练习解析、泛型和接口。我尝试了integer,但在尝试float和double.add()函数时,我得到了3个错误:
位于java.lang.NumberFormatException.ForInputString
在java.lang.integer.parsing
在java.lang.integer.valueof
我删除了整数解析器,程序运行良好。我不明白为什么只有当我输入十进制值时才会得到错误,并且希望有人帮助指出导致异常的确切原因,这样我就可以避免将来出现这样的错误,因为删除整数解析器会从integern类中删除任何功能。
此外,如果有人出于任何原因需要floatn类:
1 2 3 4 5 6 7 |
求和是一个带有add()方法的通用接口。
事先谢谢。
如果输入十进制值,
可能添加不包含可分析浮点的字符串,或者它为空。
来自JavaDoc:
1 2 | NullPointerException - if the string is null NumberFormatException - if the string does not contain a parsable float. |
因为
1 |
参见@http://docs.oracle.com/javase/7/docs/api/java/text/numberformat.html
numberFormatException出现在整数分析器中,如果输入包含十进制,则不出现在double和float分析器中。
在这种情况下,您可以使用拆分和解析来获取十进制数的整数部分:
1 2 3 4 |