代码之家  ›  专栏  ›  技术社区  ›  MBZ

检查NaN编号

  •  20
  • MBZ  · 技术社区  · 14 年前

    NaN

    3 回复  |  直到 12 年前
        1
  •  31
  •   paxdiablo    10 年前

    是的,利用 NaN 包括它自己。

    当你想到 也就是说,您创建的值实际上不在您的能力范围内,无法用“正常”浮点值来表示。

    所以,如果你创造了两个数字,你不知道它们是什么,你很难认为它们相等。他们 可以

    你可以找一个函数(实际上是宏),比如 isnan math.h 对于C和 cmath 对于C++,或者只使用

    if (myFloat != myFloat) { ... }
    

    如果由于某些奇怪的原因,您的C实现没有 伊斯南

    int isnan_float (float f) { return (f != f); }
    
        2
  •  7
  •   Community CDub    7 年前

    在Linux/gcc下,有

    C99提供 FP分类(x) .
    (但是C++标准/编译器不一定包括C99功能。)

    哦。我应该知道。。。这个问题以前已经回答过了。。。 Checking if a double (or float) is NaN in C++ Using NaN in C++? http://bytes.com/topic/c/answers/588254-how-check-double-inf-nan

        3
  •  -1
  •   Scott M.    14 年前

    你在找什么 null ,但这只对指针有用。一个数字本身不能为空,它要么有一个你放在里面的已知值,要么是内存中以前存在的随机数据。