如何在Java中正确比较两个Float包装器?

时间:2015-09-21 16:56:51

标签: java floating-point

我已经知道如何比较花车了,这不是问题。

当我比较浮动时,我不能这样做:

if(flot1 == flot2) {
    // do something
}

事实上,我总是被教导要做这样的事情:

if(Math.abs(float1 - float2) < epsilon) {
    // do something
}

但问题是当我使用浮动包装器时...例如,方法等于()简单:

if(floatWrapper1.equals(floatWrapper2)) {
    // do something
}

但阅读文档相当于:

if(floatWrapper1.floatValue() == floatWrapper2.floatValue()) {
    // do something
}

与示例(2)相同,这是为了比较的错误。

在互联网上看,我发现了一些像这样的例子:

if(Float.compare(flotWrapper1, floatWrapper2) == 0) {
    // do something
}

但是,我很想知道这是否正确。那么我应该如何比较两个浮动包装器呢?

1 个答案:

答案 0 :(得分:2)

简单的答案是因为自动装箱,比较Float与比较float没什么不同。保存为空指针检查,您可以等效地对待它们。