我决定使用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)