isnormal
Определено в заголовочном файле <math.h> | ||
|---|---|---|
#define isnormal(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("isnormal(NAN) = %d\n", isnormal(NAN));
printf("isnormal(INFINITY) = %d\n", isnormal(INFINITY));
printf("isnormal(0.0) = %d\n", isnormal(0.0));
printf("isnormal(DBL_MIN/2.0) = %d\n", isnormal(DBL_MIN / 2.0));
printf("isnormal(1.0) = %d\n", isnormal(1.0));
}
Вывод:
isnormal(NAN) = 0 isnormal(INFINITY) = 0 isnormal(0.0) = 0 isnormal(DBL_MIN/2.0) = 0 isnormal(1.0) = 1
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
- 7.12.3.5 Макрос isnormal (стр.: TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.12.3.5 Макрос isnormal (стр.: TBD)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.12.3.5 Макрос isnormal (стр.: 237)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.12.3.5 Макрос isnormal (стр.: 217–218)
См. также
|
(C99) | классифицирует заданное значение с плавающей точкой (макрос функции) |
|
(C99) | проверяет, является ли заданное число конечным (макрос функции) |
|
(C99) | проверяет, является ли заданное число бесконечным (макрос функции) |
|
(C99) | проверяет, является ли заданное число значением NaN (макрос функции) |
Документация по C++ для isnormal |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/numeric/math/isnormal