2012-05-03 13 views
1

float表現が定数に存在しない可能性があるため、浮動小数点数を定数と比較することはできません。それは0.0でも当てはまりますか?またはほとんどの(またはすべての)浮動小数点エンジンは0.0の特別な表現を持っていますか?浮動小数点数を0.0と比較する必要があります

私は、これが動作する言語、IEEE仕様または浮動小数点エンジンを探しています。

答えて

2

ゼロはすべてのIEEE-754システムで表現可能であることが保証されていますが、ゼロが正確に表現できない浮動小数点システムはありません。そのようなシステムは存在しないとは言えませんが、それはと非常にです。

2

良いアイデアは、小さな(イプシロン)値ではなくゼロに2つの浮動小数点値の差の絶対値を比較することである:ゼロに等しいxまたはyの

private static final double EPSILON = 1.0e-6; 

if (Math.abs(x-y) < EPSILON) { 
    // process here 
} 

値は特殊なケースであります。

+1

ありがとう、その良いアイデアはい。 0.0に特別な扱いがあるかどうかについては、ここで議論していました。更新された質問があります。 – jdog

関連する問題