2016-10-09 38 views
-1

我想在一個Hash執行從值的簡單操作如下:如何比較浮到整數

boolean f=Float.valueOf(entry.getValue().toString())>15; 

然而,當我運行此我得到的錯誤如下:

at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043) 
    at sun.misc.FloatingDecimal.parseFloat(FloatingDecimal.java:122) 
    at java.lang.Float.parseFloat(Float.java:451) 
    at java.lang.Float.valueOf(Float.java:416) 
    at Algorithms.HRMDx.HRMDiag(HRMDx.java:76) 

我認爲這與我如何將浮點數與數字進行比較有關,但我無法弄清楚原因。我是否需要將整數轉換爲浮點數 - 我認爲轉換將隱含起來

+1

您錯過了例外名稱和消息! –

+0

如果您查看過發佈的堆棧跟蹤,則會看到錯誤來自名爲「parseFloat」的方法。 – yeoman

+0

這就是我所得到的。沒有異常名稱 –

回答

2

正在發生的事情是,這個表達式:

Float.valueOf(entry.getValue().toString()) 

被拋出異常。您沒有在您向我們展示的內容中包含例外情況和其中的消息,但它可能是,可能是 a NumberFormatException因嘗試解析不是格式良好的數字而導致的結果。

您需要找出entry.getValue().toString()返回的內容,以便找出解析失敗的原因。

您可能還需要添加一些代碼來在該領域的「錯誤輸入」,或不管它是恢復...


我想轉換將是隱式

這與int轉換爲float(反之亦然)無關。如果valueOf調用實際返回,那麼您的15將被轉換爲15.0,並且>測試將起作用。

+0

是的。一個非數字悄悄進入,我沒有注意到。再次感謝 –

0

該錯誤與int和float之間的轉換或與比較無關。

由於您的堆棧跟蹤清楚地表明,從字符串解析浮點值時出錯。

由於我們都不知道「入口」是什麼,所以不可能說出解析失敗的原因。

+1

那不是答案 –

+0

不是嗎?爲什麼這不是答案? – yeoman

+0

您的原始非答覆是*「因爲我們沒有任何線索可能是什麼」入口「,所以不可能說出解析失敗的原因。」* –