首页 > 编程笔记

C语言isfinite():判断有限值

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

isfinite() 的功能是判断一个浮点数的值是否有限。所谓有限,指的是浮点数的值不是正无穷、负无穷和 NaN(非数字)。

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

参数

x:要检测的浮点数。

结果


【实例】以下的 C语言程序用 isfinite() 宏检查了不同的浮点数是否有限,并将结果打印出来。
#include <stdio.h>
#include <math.h>

int main() {
  double numbers[] = {3.14, INFINITY, -INFINITY, NAN, 0.0};
 
  for(int i = 0; i < 5; i++) {
    if (isfinite(numbers[i])) {
      printf("%.3f is finite.\n", numbers[i]);
    } else {
      printf("%.3f is not finite.\n", numbers[i]);
    }
  }

  return 0;
}
输出结果为:

3.140 is finite.
inf is not finite.
-inf is not finite.
nan is not finite.
0.000 is finite.

例子中展示了 isfinite() 宏检测浮点数的有限性,包括正无穷、负无穷和 NaN 的处理。

推荐阅读