浮動小数点数を等号と比較するのは悪い考えであることはわかっています。私の質問は、同じ計算から得られた数値を比較しても安全かどうかです。例 (Java コード)
double doSomething(double d) {
return d;
}
void test() {
double result = computation();
double result2 = result;
Double result3 = new Double(result)
Double result4 = new Double(result2)
double result5 = doSomething(result2)
//etc.
//now do all of the above compare equal? i.e.
boolean b = result4.doubleValue() == result //is this true?
//and for other combinations?
}
それらは等しいはずですが、FPUレジスタのために本当に正しいかどうかはわかりません。JVMはそれらが等しいことを保証しますか? おまけの質問: C はどうですか?
これが以前に回答されていた場合は申し訳ありませんが、回答を見つけることができませんでした。