C++官网参考链接:https://cplusplus.com/reference/cmath/isfinite/
宏/函数
<cmath> <ctgmath>
isfinite
C99
宏
isfinite(x)
C++11
函数
bool isfinite(float x);
bool isfinite(double x);
bool isfinite(long double x);
是一个有限值
返回x是否为有限值。
有限值是任何既不是无穷大也不是NaN(不是一个数)的浮点值。
C99
在C语言中,这被实现为一个返回int值的宏。x的类型应为float、double或long double。
C++11
在C++中,它是通过每个浮点类型(floating-point type)的函数重载来实现的,每个浮点类型都返回bool值。
参数
x
一个浮点值。
返回值
如果x是有限的,则为非0值(true);否则为0(false)。
用例
/* 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;
}
输出:
另请参考
isinf Is infinity (macro/function) (是无穷值(宏/函数))
isnan Is Not-A-Number (macro/function) (不是一个数(宏/函数))
isnormal Is normal (macro/function) (是正常的(宏/函数))
fpclassify Classify floating-point value (macro/function) (分类浮点值(宏/函数))