2013-12-14 69 views
-1

我使用jsp将dvd存储到数据库中字符串浮动:NumberFormatException

对于价格,我选择使用float。 在形式我用另一个方法:

<form method="POST"> 
... 
    <td> 
     <input type="text" name="dvdprice"/> 
    </td> 
... 
<input type="submit" name="submit" value="Submit"> 
</form> 

当试图将它从字符串转换为浮动我用这个

String price = request.getParameter("dvdprice"); 
... 
Float.valueOf(price) 

我得到这个异常:

SEVERE: java.lang.NumberFormatException: For input string: "9.99" 
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 
at java.lang.Integer.parseInt(Integer.java:492) 
at java.lang.Integer.valueOf(Integer.java:582) 
... 

我已经找遍了这个地方,但我找不到解决方案.. 我用这种技术来转换数百万次,我不知道为什么isn'现在正在工作......

任何帮助?

+0

您能显示您的实际代码吗? –

回答

4

您得到的例外不是从致电Float.parseFloat。它来自Integer.parseInt。检查堆栈跟踪中的行号以找出位置。我怀疑你正在解析其他地方的整数,而你只是把错误的值解析。

此外,强烈考虑使用BigDecimal而不是floatdouble来存储货币值。 (二进制浮点类型不能很好地与具有精确十进制表示的数量一起玩。)

+0

是的,这是问题所在。从堆栈跟踪中,他试图将'9.99'解析为整数。 –

+0

确实我有其他地方Integer.valueOf(someString)这是浮动.. 我没有注意,我只专注于那一行代码,我知道我正在解析浮动.. 缺乏注意.. 谢谢乔恩:) –

相关问题