如何将float与integer进行比较

时间:2016-10-09 09:17:59

标签: java

我想从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)

我认为这与我如何比较浮点数与数字有关,但我无法弄清楚原因。我是否需要将整数转换为浮点数 - 我认为转换是隐式的

2 个答案:

答案 0 :(得分:2)

发生的事情是这个表达式:

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

正在抛出异常。您没有在您向我们展示的内容中包含异常及其消息,但是由于尝试解析不是格式正确的数字而导致可能 NumberFormatException。< / p>

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

您可能还需要添加一些代码来从该字段中的“错误输入”中恢复,或者不管它是什么......

  

我认为转换是隐含的

这与将int转换为float无关(反之亦然)。如果实际返回valueOf来电,那么您的15将转换为15.0>测试将有效。

答案 1 :(得分:0)

错误与int和float之间的转换或与比较无关。

当您的堆栈跟踪清楚地指出时,从字符串解析浮点值时会出错。

因为我们都没有任何关于什么&#34;条目&#34;可能是,不可能说为什么解析失败了。