我想从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)
我认为这与我如何比较浮点数与数字有关,但我无法弄清楚原因。我是否需要将整数转换为浮点数 - 我认为转换是隐式的
答案 0 :(得分:2)
发生的事情是这个表达式:
Float.valueOf(entry.getValue().toString())
正在抛出异常。您没有在您向我们展示的内容中包含异常及其消息,但是由于尝试解析不是格式正确的数字而导致可能 NumberFormatException
。< / p>
您需要找出entry.getValue().toString()
返回的内容,以便找出解析失败的原因。
您可能还需要添加一些代码来从该字段中的“错误输入”中恢复,或者不管它是什么......
我认为转换是隐含的
这与将int
转换为float
无关(反之亦然)。如果实际返回valueOf
来电,那么您的15
将转换为15.0
,>
测试将有效。
答案 1 :(得分:0)
错误与int和float之间的转换或与比较无关。
当您的堆栈跟踪清楚地指出时,从字符串解析浮点值时会出错。
因为我们都没有任何关于什么&#34;条目&#34;可能是,不可能说为什么解析失败了。