C99 | macro: isnan(x) |
C++11 | function:
bool isnan (float x); bool isnan (double x); bool isnan (long double x); |
C99 | 在C语言中,它被实现为一个返回int值的宏,x的类型应该是float, double或long double。 |
C++11 | 在c++中,它是通过对每个浮点类型的函数重载来实现的,每个类型返回一个bool值。 |
/* isnan example */ #include <stdio.h> /* printf */ #include <math.h> /* isnan, sqrt */ int main() { printf ("isnan(0.0) : %d\n",isnan(0.0)); printf ("isnan(1.0/0.0) : %d\n",isnan(1.0/0.0)); printf ("isnan(-1.0/0.0) : %d\n",isnan(-1.0/0.0)); printf ("isnan(sqrt(-1.0)): %d\n",isnan(sqrt(-1.0))); return 0; } |
isnan(0.0) : 0 isnan(1.0/0.0) : 0 isnan(-1.0/0.0) : 0 isnan(sqrt(-1.0)): 1
isfinite | 是否有限值(宏) |
fpclassify | 分类浮点值(宏/函数 ) |
isinf | 是不是无限的 (宏/函数) |
isnormal | 是不是正常的(宏/函数 ) |
signbit | 符号位(宏/函数 ) |