Checking if a double (or float) is NaN in C++

后端 未结 21 2138
北恋
北恋 2020-11-22 05:10

Is there an isnan() function?

PS.: I\'m in MinGW (if that makes a difference).

I had this solved by using isnan() from , which doe

21条回答
  •  自闭症患者
    2020-11-22 05:45

    According to the IEEE standard, NaN values have the odd property that comparisons involving them are always false. That is, for a float f, f != f will be true only if f is NaN.

    Note that, as some comments below have pointed out, not all compilers respect this when optimizing code.

    For any compiler which claims to use IEEE floating point, this trick should work. But I can't guarantee that it will work in practice. Check with your compiler, if in doubt.

提交回复
热议问题