std :: isnan()がNAN値を持つdouble変数に対してfalseを返すのはなぜですか

マキシムSkvortsov

関数の引数のデフォルト値として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);

出力:

nan false false
マキシムSkvortsov

-ffast-mathたちがプロジェクトで使用していることを知りませんでしたそれが問題の原因です。ご清聴ありがとうございました。を使用して-ffast-mathいる場合、解決策はありませんあなたはただあなたの問題を解決するための別の方法を探す必要があります(なしでNAN

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

std :: is_functionが単純な関数とラムダに対してfalseを返すのはなぜですか?

分類Dev

std範囲アルゴリズムが...ではなく右辺値引数に対してstd :: ranges :: danglingを返すのはなぜですか?

分類Dev

%z形式のstd :: put_time(std :: gmtimeがUTCに対して+0100を返すのはなぜですか?

分類Dev

std :: hash <std :: string>は異なる文字列に対して同じ値を返すことができますか?

分類Dev

この変換が合法ではないのに、std :: is_convertible_vがtrueを返すのはなぜですか?

分類Dev

unsigned longlong引数を持つstd :: bitsetコンストラクターが明示的としてマークされていないのはなぜですか?

分類Dev

std :: nth_elementが、N <33要素の入力ベクトルに対してソートされたベクトルを返すのはなぜですか?

分類Dev

std :: threadが関数を取得して右辺値で実行するのはなぜですか?

分類Dev

std :: fetch_addが古い値を返すのはなぜですか?

分類Dev

二重空の中括弧{{}}が、ゼロではなく1つの要素を持つstd :: initializer_list <double>を作成するのはなぜですか?

分類Dev

「std :: is_pointer <std :: nullptr_t> :: value」がfalseに等しいのはなぜですか?

分類Dev

std :: hexが特にcharを使用して16進数として出力されないのはなぜですか?

分類Dev

std :: binary_searchがboolを返すのはなぜですか?

分類Dev

std :: stringとstd :: wstringに対して1つの関数を書くことは可能ですか?

分類Dev

std :: moveが右辺値参照を引数として取るのはなぜですか?

分類Dev

std :: double_tをstd :: coutにストリーミングしないと、小数点以下の桁数が表示されないのはなぜですか?

分類Dev

np.std(X)とX.std()が異なる値を返すのはなぜですか?

分類Dev

std :: forwardが左辺値と右辺値を右辺値参照に変換するのはなぜですか?

分類Dev

std :: copyableがstd :: movableを包含しているのはなぜですか?

分類Dev

c ++ 11では、std :: moveの後にmoved変数を使用する権利がないのはなぜですか?

分類Dev

g ++が変換演算子とアクセスできない関数呼び出し演算子を持つ型からのstd :: function <>の初期化に失敗するのはなぜですか?

分類Dev

g ++を使用している場合、std :: coutがvoid *に変換できるのはなぜですか?

分類Dev

std :: tupleのヘルパーが値ではなく右辺値参照を返すのはなぜですか

分類Dev

std :: transformがstd :: stringベクトルをunsignedintベクトルに変換しないのはなぜですか?

分類Dev

std :: is_assignableが関連するポインタタイプでfalseを返すのはなぜですか?

分類Dev

ローカルstd :: stringstreamを返すときにc ++がRVOを使用しないのはなぜですか?

分類Dev

C ++ 20でstd :: vector演算子==が異なるアロケータを持つベクトルに対して機能しない理由はありますか?

分類Dev

std :: vectorを返すことがまだコピーを作成しているのはなぜですか?

分類Dev

std :: is_same_v <>は、型で宣言された列挙型に対してfalseを返しますか?

Related 関連記事

  1. 1

    std :: is_functionが単純な関数とラムダに対してfalseを返すのはなぜですか?

  2. 2

    std範囲アルゴリズムが...ではなく右辺値引数に対してstd :: ranges :: danglingを返すのはなぜですか?

  3. 3

    %z形式のstd :: put_time(std :: gmtimeがUTCに対して+0100を返すのはなぜですか?

  4. 4

    std :: hash <std :: string>は異なる文字列に対して同じ値を返すことができますか?

  5. 5

    この変換が合法ではないのに、std :: is_convertible_vがtrueを返すのはなぜですか?

  6. 6

    unsigned longlong引数を持つstd :: bitsetコンストラクターが明示的としてマークされていないのはなぜですか?

  7. 7

    std :: nth_elementが、N <33要素の入力ベクトルに対してソートされたベクトルを返すのはなぜですか?

  8. 8

    std :: threadが関数を取得して右辺値で実行するのはなぜですか?

  9. 9

    std :: fetch_addが古い値を返すのはなぜですか?

  10. 10

    二重空の中括弧{{}}が、ゼロではなく1つの要素を持つstd :: initializer_list <double>を作成するのはなぜですか?

  11. 11

    「std :: is_pointer <std :: nullptr_t> :: value」がfalseに等しいのはなぜですか?

  12. 12

    std :: hexが特にcharを使用して16進数として出力されないのはなぜですか?

  13. 13

    std :: binary_searchがboolを返すのはなぜですか?

  14. 14

    std :: stringとstd :: wstringに対して1つの関数を書くことは可能ですか?

  15. 15

    std :: moveが右辺値参照を引数として取るのはなぜですか?

  16. 16

    std :: double_tをstd :: coutにストリーミングしないと、小数点以下の桁数が表示されないのはなぜですか?

  17. 17

    np.std(X)とX.std()が異なる値を返すのはなぜですか?

  18. 18

    std :: forwardが左辺値と右辺値を右辺値参照に変換するのはなぜですか?

  19. 19

    std :: copyableがstd :: movableを包含しているのはなぜですか?

  20. 20

    c ++ 11では、std :: moveの後にmoved変数を使用する権利がないのはなぜですか?

  21. 21

    g ++が変換演算子とアクセスできない関数呼び出し演算子を持つ型からのstd :: function <>の初期化に失敗するのはなぜですか?

  22. 22

    g ++を使用している場合、std :: coutがvoid *に変換できるのはなぜですか?

  23. 23

    std :: tupleのヘルパーが値ではなく右辺値参照を返すのはなぜですか

  24. 24

    std :: transformがstd :: stringベクトルをunsignedintベクトルに変換しないのはなぜですか?

  25. 25

    std :: is_assignableが関連するポインタタイプでfalseを返すのはなぜですか?

  26. 26

    ローカルstd :: stringstreamを返すときにc ++がRVOを使用しないのはなぜですか?

  27. 27

    C ++ 20でstd :: vector演算子==が異なるアロケータを持つベクトルに対して機能しない理由はありますか?

  28. 28

    std :: vectorを返すことがまだコピーを作成しているのはなぜですか?

  29. 29

    std :: is_same_v <>は、型で宣言された列挙型に対してfalseを返しますか?

ホットタグ

アーカイブ