我的程序在计算期间可以生成nan
或-nan
值。
我使用 isnan
方法检查值是否为 nan
/-nan
。
我还必须区分 nan 值是正数还是负数(nan
或 -nan
)。我该怎么做?
补充:我需要 WIN 和 Unix/Linux 的跨平台解决方案
最佳答案
尝试 signbit
来自 <math.h>
:
Description
signbit() is a generic macro which can work on all real floating-point types. It returns a nonzero value if the value of x has its sign bit set.
...
NaNs and infinities have a sign bit.
它显然是 C99 和 POSIX.1-2001 的一部分,但如果您不想使用/符合两者中的任何一个,您可以自己编写一个宏/函数。
关于c - 对 NaN 值进行签名检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8781072/