Проверить число на бесконечность
#include <math.h>#define isinf( x ) ...
libm
Макрос isinf() определяет, является ли число 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, (isinf( a )) ? "infinite" : "not infinite" );printf( "%f is %s \n", b, (isinf( b )) ? "infinite" : "not infinite" );printf( "%f is %s \n", c, (isinf( c )) ? "infinite" : "not infinite" );printf( "%f is %s \n", d, (isinf( d )) ? "infinite" : "not infinite" );return (0);}
Код генерирует следующий вывод:
$ ./a.out 2.000000 is not infinite -0.500000 is not infinite NAN is not infinite Inf is infinite
ANSI, POSIX 1003.1
Предыдущий раздел: Описание API математической библиотеки