小编Max*_*sov的帖子

为什么std :: isnan()对于具有NAN值的双变量返回false

我决定使用NAN(也尝试过std::numeric_limits::quiet_NaN())作为该函数参数的默认值,但是当我尝试使用进行检查时std::isnan,它返回了false。在同一时间使用qDebug()和我将值打印到控制台nan

我也尝试检查NAN使用x != x规则。它工作了NAN != NAN,但是得到falsex != x

最后一次尝试是NAN在函数内部定义double变量,然后尝试使用这两种方法进行检查,但结果相同。

我不明白哪里出了问题。

例:

double abc = NAN;
qDebug()<< abc << (abc != abc) << std::isnan(abc);
Run Code Online (Sandbox Code Playgroud)

输出:

nan false false
Run Code Online (Sandbox Code Playgroud)

c++ qt

4
推荐指数
1
解决办法
391
查看次数

标签 统计

c++ ×1

qt ×1