定数に対して浮動小数点数表現が存在しない可能性があるため、浮動小数点数を定数に対して == と比較できないことを思い出してください。0.0もそうですか?または、ほとんどの (またはすべての) 浮動小数点エンジンには 0.0 の特別な表現がありますか?
これが機能する言語、IEEE 仕様、または浮動小数点エンジンを探しています。
定数に対して浮動小数点数表現が存在しない可能性があるため、浮動小数点数を定数に対して == と比較できないことを思い出してください。0.0もそうですか?または、ほとんどの (またはすべての) 浮動小数点エンジンには 0.0 の特別な表現がありますか?
これが機能する言語、IEEE 仕様、または浮動小数点エンジンを探しています。
ゼロはどの IEEE-754 システムでも表現可能であることが保証されており、ゼロが正確に表現できない浮動小数点システムは他にありません。そのようなシステムが存在しないと言っているわけではありませんが、非常に珍しいことです。
2 つの浮動小数点値の差の絶対値をゼロではなく小さな (イプシロン) 値と比較することをお勧めします。
private static final double EPSILON = 1.0e-6;
if (Math.abs(x-y) < EPSILON) {
// process here
}
ゼロに等しい x または y の値は特殊なケースです。