当前位置: C语言 -- 标准库 -- <math.h> -- isnan

isnan宏


概要:
#include <math.h>
int isnan(real-floating x);

描述:

该宏是函数式宏(function-like macro),判断参数是否为非数值(NaN)。

如果参数x的表示形式宽于real-floating,将转换成real-floating类型;然后再根据real-floating类型进行判断。

对于宏isnan,确定类型并不重要,除非实现在评估类型(evaluation type)中支持NaNs,但在语义类型(semantic type)中却不支持NaNs


参数:
real-floating x

参数x应为实数浮点类型表达式,例如:floatdoublelong double类型表达式。


返回值:

如果参数x为非数值,该宏返回非0值。


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
/*宏isnan范例*/

#include <float.h>
#include <math.h>
#include <stdio.h>

int main(void)
{
    if(isnan(0.0))
        puts("0.0 is a NaN.");

    if(isnan(3.14))
        puts("3.14 is a NaN.");

    if(isnan(DBL_MIN/2))
        puts("DBL_MIN/2 is a NaN.");

    if(isnan(0.0/0.0))
        puts("0.0/0.0 is a NaN.");

    if(isnan(1.0/0.0))
        puts("1.0/0.0 is a NaN.");

    return 0;
}

输出:

0.0/0.0 is a NaN.


相关内容:
fpclassify 对参数按浮点类别进行分类的宏。
isfinite 判断参数是否为有限值的宏。
isinf 判断参数是否为无穷大的宏。
isnormal 判断参数是否为规格化数的宏。