isfinite
Определено в заголовочном файле <math.h> | ||
|---|---|---|
#define isfinite(arg) /* implementation defined */ | (начиная с C99) |
Определяет, имеет ли заданное число с плавающей точкой arg конечное значение, то есть является ли оно нормальным, субнормальным или нулём, но не бесконечностью и не NaN. Макрос возвращает целочисленное значение.
FLT_EVAL_METHOD не учитывается: даже если аргумент вычисляется с большим диапазоном и точностью, чем у его типа, сначала он преобразуется к своему семантическому типу, и классификация выполняется на основе этого типа.
Параметры
| arg | - | значение с плавающей точкой |
Возвращаемое значение
Ненулевое целочисленное значение, если arg имеет конечное значение, 0 в противном случае.
Пример
#include <float.h>
#include <math.h>
#include <stdio.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
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
- 7.12.3.2 Макрос isfinite (стр.: TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.12.3.2 Макрос isfinite (стр.: TBD)
- Стандарт 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/c/numeric/math/isfinite