我正在使用jsp将dvds存储到数据库中
对于价格,我选择使用浮动。 在表格中,我使用下一种方法:
<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)
...
我到处都搜索过这个问题但我找不到解决方案.. 我使用这种技术将数字转换成数百万次,我不确定为什么现在不能正常工作......
有任何帮助吗?
答案 0 :(得分:4)
通过调用Float.parseFloat
,您获得的例外不是。这是来自Integer.parseInt
的电话。检查堆栈跟踪中的行号以找出位置。我怀疑你在其他地方解析整数,而你只是拉错了值来解析。
此外,强烈考虑使用BigDecimal
代替float
或double
来存储货币值。 (二进制浮点类型不能很好地处理具有精确十进制表示的数量。)