2013-12-14 141 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)這是浮動.. 我沒有注意,我只專注於那一行代碼,我知道我正在解析浮動.. 缺乏注意.. 謝謝喬恩:) –

相關問題