我决定使用NAN
(也尝试过std::numeric_limits::quiet_NaN()
)作为该函数参数的默认值,但是当我尝试使用进行检查时std::isnan
,它返回了false
。在同一时间使用qDebug()
和我将值打印到控制台nan
。
我也尝试检查NAN
使用x != x
规则。它工作了NAN != NAN
,但是得到false
了x != 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)
我不知道我们正在-ffast-math
项目中使用它。这就是导致问题的原因。感谢您的关注和评论。如果使用,则没有解决方案-ffast-math
。您只需要寻找另一种解决问题的方法(无需NAN
)