関数の引数のデフォルト値として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);
出力:
nan false false
私-ffast-math
たちがプロジェクトで使用していることを知りませんでした。それが問題の原因です。ご清聴ありがとうございました。を使用して-ffast-math
いる場合、解決策はありません。あなたはただあなたの問題を解決するための別の方法を探す必要があります(なしでNAN
)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加