字符串到Float:NumberFormatException

时间:2013-12-14 23:16:17

标签: java string jsp numberformatexception

我正在使用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)
...

我到处都搜索过这个问题但我找不到解决方案.. 我使用这种技术将数字转换成数百万次,我不确定为什么现在不能正常工作......

有任何帮助吗?

1 个答案:

答案 0 :(得分:4)

通过调用Float.parseFloat,您获得的例外不是。这是来自Integer.parseInt的电话。检查堆栈跟踪中的行号以找出位置。我怀疑你在其他地方解析整数,而你只是拉错了值来解析。

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