isfinite
Определено в заголовочном файле <math.h> |
||
|---|---|---|
#define isfinite(arg) /* implementation defined */ |
(с C99) |
Определяет, имеет ли заданное число с плавающей запятой arg конечное значение, т.е. является нормальным, поднормальным или нулём, но не бесконечным или NaN. Макрос возвращает целое значение.
FLT_EVAL_METHOD игнорируется: даже если аргумент вычисляется с большим диапазоном и точностью, чем его тип, он сначала преобразуется в свой семантический тип, и классификация основана на этом.
Параметры
| arg | - | значение с плавающей запятой |
Возвращаемое значение
Неноль целое значение, если arg имеет конечное значение, 0 в противном случае.
Пример
#include <stdio.h>
#include <math.h>
#include <float.h>
int main(void)
{
printf("isfinite(NAN) = %d\n", isfinite(NAN));
printf("isfinite(INFINITY) = %d\n", isfinite(INFINITY));
printf("isfinite(0.0) = %d\n", isfinite(0.0));
printf("isfinite(DBL_MIN/2.0) = %d\n", isfinite(DBL_MIN/2.0));
printf("isfinite(1.0) = %d\n", isfinite(1.0));
printf("isfinite(exp(800)) = %d\n", isfinite(exp(800)));
}Возможный вывод:
isfinite(NAN) = 0 isfinite(INFINITY) = 0 isfinite(0.0) = 1 isfinite(DBL_MIN/2.0) = 1 isfinite(1.0) = 1 isfinite(exp(800)) = 0
Ссылки
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.12.3.2 Макрос isfinite (с. 236)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.12.3.2 Макрос isfinite (с. 216-217)
См. также
|
(C99) |
классифицирует данное значение с плавающей запятой (макрос-функция) |
|
(C99) |
проверяет, является ли данное число бесконечным (макрос-функция) |
|
(C99) |
проверяет, является ли данное число NaN (макрос-функция) |
|
(C99) |
проверяет, является ли данное число нормальным (макрос-функция) |
Документация C++ для isfinite |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/math/isfinite