首页 > 编程笔记

C语言isnan():判断NaN值

isnan() 是 C语言标准库中的一个宏,定义在<math.h>头文件中。

isnan() 的功能是判断一个浮点数的值是否为 NaN。NaN 是一种特殊的浮点值,表示未定义或不可表示的结果,例如 0 除以 0 的结果、负数的平方根等。

isnan() 宏的定义如下:
isnan(x)

参数

x:要检测的浮点数。

结果


【实例】以下的 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.

推荐阅读