<cmath> <ctgmath>

isfinite

isfinite(x)
函数
bool isfinite (float x);bool isfinite (double x);bool isfinite (long double x);
是否为有限值
返回 x 是否为有限值

有限值是任何既不是无穷大也不是 NaN (非数字) 的浮点值。

在 C 语言中,这实现为一个返回 int 值的宏。 x 的类型应为 floatdoublelong double
在 C++ 中,它通过针对每种浮点类型的函数重载实现,每个重载都返回一个 bool 值。

参数

x
一个浮点值。

返回值

如果 x 是有限的,则返回一个非零值 (true);否则返回零 (false)。

示例

1
2
3
4
5
6
7
8
9
10
11
12
/* isfinite example */
#include <stdio.h>      /* printf */
#include <math.h>       /* isfinite, sqrt */

int main()
{
  printf ("isfinite(0.0)       : %d\n",isfinite(0.0));
  printf ("isfinite(1.0/0.0)   : %d\n",isfinite(1.0/0.0));
  printf ("isfinite(-1.0/0.0)  : %d\n",isfinite(-1.0/0.0));
  printf ("isfinite(sqrt(-1.0)): %d\n",isfinite(sqrt(-1.0)));
  return 0;
}

输出

isfinite(0.0)       : 1
isfinite(1.0/0.0)   : 0
isfinite(-1.0/0.0)  : 0
isfinite(sqrt(-1.0)): 0


另见