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