isinf, isinff, isinfl - проверка, является ли аргумент бесконечностью.
Синтаксис:
#include < math.h >
int isinf (double x);
int isinff (float x);
int isinfl (long double x);
Аргументы:
x – проверяемое число с плавающей точкой.
Возвращаемое значение:
0, если проверяемый аргумент – конечное число или не число (nan).
Отличное от нуля значение, если проверяемый аргумент плюс или минус бесконечность.
Описание:
Функции isinf, isinff, isinfl проверяют, является ли аргумент плюс/минус бесконечность.
Функции isinf, isinff, isinfl отличаются друг от друга типом аргумента. Так аргумент функции isinf является числом с плавающей точкой двойной точности (тип double, точность не менее десяти значащих десятичных цифр, разрядность - 64).
Аргумент функции isinff является числом с плавающей точкой (тип float, точность не менее шести значащих десятичных цифр, разрядность - 32).
Аргумент функции isinfl является числом с плавающей точкой повышенной точности (тип long double, точность не менее десяти значащих десятичных цифр, разрядность - 80).
Функции isinf, isinff, isinfl в ревизии C99 стандарта Си были продублированы макросом isinf, работающим с аргументом, заданным числом с плавающей точкой любого типа (float, double, long double).
Пример:
В примере проверяется три аргумента, один из которых нормальное число, другой не число, а третий плюс бесконечность, с помощью функций isinf, isinff, isinfl и результат выводится на консоль.
#include < stdio.h > //Для printf, puts
#include < math.h > //Для isinf, isinff, isinfl
int main (void)
{
// Аргумент 1 – не число
float arg1 = NAN;
//Аргумент 2 – бесконечность
double arg2 = INFINITY;
//Аргумент 3 – конечное число
long double arg3 = 104.563;
// Выводим на консоль значения аргументов
printf (“Аргументы: %f %f %3Lf\n”,arg1, arg2, arg3);
// Проверяем тип первого аргумента и выводим результат
if (isinff (arg1) == 0)
puts (“Первый аргумент – конечное число или не число.”);
else
puts (“Первый аргумент – бесконечность.”);
// Проверяем тип второго аргумента и выводим результат
if (isinf (arg2) == 0)
puts (“Второй аргумент – конечное число или не число.”);
else
puts (“Второй аргумент – бесконечность.”);
// Проверяем тип третьего аргумента и выводим результат
if ( isinfl (arg3) == 0)
puts (“Третий аргумент – конечное число или не число.”);
else
puts (“Третий аргумент – бесконечность.”);
return 0;
}
| |
Результат:
Аргументы: nan, inf, 104.563
Первый аргумент – конечное число или не число.
Второй аргумент – бесконечность.
Третий аргумент – конечное число или не число.
|
Смотри так же:
Функции:
finite, finitef, finitel
isinf, isinff, isinfl
isnan,isnanf,isnanl
Макросы:
isfinite
isinf
isnan
isnormal
isunordered
fpclassify
|