3
なぜインテル®C ++コンパイラーでNaN-NaN == 0.0なのですか?
NaNが算術で伝播することはよく知られていますが、デモを見つけることができなかったため、簡単なテストを作成しました。 #include <limits> #include <cstdio> int main(int argc, char* argv[]) { float qNaN = std::numeric_limits<float>::quiet_NaN(); float neg = -qNaN; float sub1 = 6.0f - qNaN; float sub2 = qNaN - 6.0f; float sub3 = qNaN - qNaN; float add1 = 6.0f + qNaN; float add2 = qNaN + qNaN; float …
300
c++
c
floating-point
ieee-754
icc