この演算は、等価性のために2つの浮動小数点値を比較しています。
浮動小数点の計算は丸めを伴うかもしれないので、計算された float と double の値は正確ではないかもしれません。
通貨のような正確でなければならない値のために、BigDecimal
のような固定精度型を使うことを検討してください。
正確である必要がない値のために、いくつかの範囲の中で等価性のために比較することを検討してください。
たとえば、if (Math.abs(x - y) < .0000001)
。
詳細は Java 言語仕様4.2.4を参照してください。