C语言isnan():判断NaN值
isnan() 是 C语言标准库中的一个宏,定义在
isnan() 的功能是判断一个浮点数的值是否为 NaN。NaN 是一种特殊的浮点值,表示未定义或不可表示的结果,例如 0 除以 0 的结果、负数的平方根等。
isnan() 宏的定义如下:
【实例】以下的 C语言程序用 isnan() 宏检查了不同的浮点数是否为 NaN,并将结果打印出来。
<math.h>
头文件中。isnan() 的功能是判断一个浮点数的值是否为 NaN。NaN 是一种特殊的浮点值,表示未定义或不可表示的结果,例如 0 除以 0 的结果、负数的平方根等。
isnan() 宏的定义如下:
isnan(x)
参数
x:要检测的浮点数。结果
- 如果参数 x 是 NaN,则宏的结果为非零数(true)。
- 如果参数 x 不是 NaN,则宏的结果为零(false)。
【实例】以下的 C语言程序用 isnan() 宏检查了不同的浮点数是否为 NaN,并将结果打印出来。
#include <stdio.h> #include <math.h> int main() { double numbers[] = {3.14, 0.0/0.0, sqrt(-1), NAN, 5.0}; for(int i = 0; i < 5; i++) { if (isnan(numbers[i])) { printf("%.3f is NaN.\n", numbers[i]); } else { printf("%.3f is not NaN.\n", numbers[i]); } } return 0; }输出结果为:
3.140 is not NaN.
nan is NaN.
nan is NaN.
nan is NaN.
5.000 is not NaN.