float表現が定数に存在しない可能性があるため、浮動小数点数を定数と比較することはできません。それは0.0でも当てはまりますか?またはほとんどの(またはすべての)浮動小数点エンジンは0.0の特別な表現を持っていますか?浮動小数点数を0.0と比較する必要があります
私は、これが動作する言語、IEEE仕様または浮動小数点エンジンを探しています。
float表現が定数に存在しない可能性があるため、浮動小数点数を定数と比較することはできません。それは0.0でも当てはまりますか?またはほとんどの(またはすべての)浮動小数点エンジンは0.0の特別な表現を持っていますか?浮動小数点数を0.0と比較する必要があります
私は、これが動作する言語、IEEE仕様または浮動小数点エンジンを探しています。
ゼロはすべてのIEEE-754システムで表現可能であることが保証されていますが、ゼロが正確に表現できない浮動小数点システムはありません。そのようなシステムは存在しないとは言えませんが、それはと非常にです。
良いアイデアは、小さな(イプシロン)値ではなくゼロに2つの浮動小数点値の差の絶対値を比較することである:ゼロに等しいxまたはyの
private static final double EPSILON = 1.0e-6;
if (Math.abs(x-y) < EPSILON) {
// process here
}
値は特殊なケースであります。
ありがとう、その良いアイデアはい。 0.0に特別な扱いがあるかどうかについては、ここで議論していました。更新された質問があります。 – jdog