Определить, является ли число конечным
#include <math.h>int isfinite( double x );
libm
Макрос isfinite() определяет, является ли число x конечным.
#include <stdio.h>#include <errno.h>#include <inttypes.h>#include <math.h>#include <fpstatus.h>int main( void ){double a, b, c, d;a = 2;b = -0.5;c = NAN;fp_exception_mask( _FP_EXC_DIVZERO, 1 );d = 1.0 / 0.0;printf( "%f is %s \n", a, (isfinite( a )) ? "finite" : "not finite" );printf( "%f is %s \n", b, (isfinite( b )) ? "finite" : "not finite" );printf( "%f is %s \n", c, (isfinite( c )) ? "finite" : "not finite" );printf( "%f is %s \n", d, (isfinite( d )) ? "finite" : "not finite" );return(0);}
Код генерирует следующий вывод:
$ ./a.out 2.000000 is finite -0.500000 is finite NAN is not finite Inf is not finite
POSIX 1003.1
Предыдущий раздел: Описание API математической библиотеки