Other Alias
fpclassify, isnormal, isnan, isinfОБЗОР
#include <math.h>
int fpclassify(x);
int isfinite(x);
int isnormal(x);
int isnan(x);
int isinf(x);
Компонуется при указании параметра -lm.
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
fpclassify(), isfinite(), isnormal():
-
_XOPEN_SOURCE >= 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L;
или cc -std=c99
-
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE || _ISOC99_SOURCE ||
_POSIX_C_SOURCE >= 200112L;
или cc -std=c99
-
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE
|| _POSIX_C_SOURCE >= 200112L;
или cc -std=c99
ОПИСАНИЕ
У чисел с плавающей запятой есть специальные значения, например для бесконечности или NaN. С помощью макроса fpclassify(x) вы можете выяснить тип x. В качестве аргумента макрос принимает любое выражение с плавающей запятой. Результатом будет одно из следующих значений:- FP_NAN
- Значение x не является числом («Not a Number»).
- FP_INFINITE
- Значение x стремится к плюс или минус бесконечности.
- FP_ZERO
- Значение x равно нулю.
- FP_SUBNORMAL
- Значение x слишком мало для представления в нормализованном формате.
- FP_NORMAL
- Если значение не равно ни одному из вышеперечисленных, то это обычное число с плавающей запятой.
Остальные макросы предоставляют короткие ответы на некоторые стандартные вопросы.
- isfinite(x)
-
возвращает ненулевое значение, если
(fpclassify(x) != FP_NAN && fpclassify(x) != FP_INFINITE) - isnormal(x)
- возвращает ненулевое значение, если (fpclassify(x) == FP_NORMAL)
- isnan(x)
- возвращает ненулевое значение, если (fpclassify(x) == FP_NAN)
- isinf(x)
- возвращает 1, если x равно положительной бесконечности и -1, если x равно отрицательной бесконечности.
АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).Интерфейс | Атрибут | Значение |
fpclassify(), isfinite(), isnormal(), isnan(), isinf() | безвредность в нитях | безвредно (MT-Safe) |
СООТВЕТСТВИЕ СТАНДАРТАМ
POSIX.1-2001, POSIX.1-2008, C99.Про isinf() в стандартах лишь сказано, что этот макрос возвращает ненулевое значение, если только аргумент равен бесконечности.