Spec-Zone.ru › C

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)

См. также

fpclassify
(C99)
классифицирует заданное значение с плавающей точкой
(макрос функции)
isfinite
(C99)
проверяет, является ли заданное число конечным
(макрос функции)
isinf
(C99)
проверяет, является ли заданное число бесконечным
(макрос функции)
isnan
(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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API