Spec-Zone.ru › C++

Заголовок стандартной библиотеки <cfloat>

Изначально этот заголовок входил в стандартную библиотеку C как <float.h>.

Этот заголовок относится к библиотеке поддержки типов, в частности, к интерфейсу числовых пределов C.

Макросы

Характеристики
FLT_ROUNDS
режим округления по умолчанию для арифметики с плавающей точкой
(константа-макрос)
FLT_EVAL_METHOD
(C++11)
задаёт точность, в которой выполняются все арифметические операции
(константа-макрос)
FLT_HAS_SUBNORMDBL_HAS_SUBNORMLDBL_HAS_SUBNORM
(C++17)(устарел в C++26)
указывает, поддерживает ли тип субнормальные (денормализованные) числа:
-1 — определить невозможно, 0 — отсутствуют, 1 — присутствуют
(константа-макрос)
FLT_RADIX
основание системы счисления (целочисленное основание), используемое для представления всех трёх типов с плавающей точкой
(константа-макрос)
FLT_MANT_DIGDBL_MANT_DIGLDBL_MANT_DIG
количество цифр в системе счисления с основанием FLT_RADIX, которое можно представить без потери точности для float, double и longdouble соответственно
(константа-макрос)
FLT_DECIMAL_DIGDBL_DECIMAL_DIGLDBL_DECIMAL_DIG
(C++17)
преобразование float/double/longdouble в десятичное представление как минимум с FLT_DECIMAL_DIG/DBL_DECIMAL_DIG/LDBL_DECIMAL_DIG цифрами и обратно является тождественным преобразованием: это десятичная точность, необходимая для сериализации/десериализации значения с плавающей точкой
(константа-макрос)
DECIMAL_DIG
(C++11)(устарел в C++26)
преобразование longdouble в десятичное представление как минимум с DECIMAL_DIG цифрами и обратно в longdouble является тождественным преобразованием: это десятичная точность, необходимая для сериализации/десериализации значения типа longdouble
(константа-макрос)
FLT_DIGDBL_DIGLDBL_DIG
количество десятичных цифр, которое гарантированно сохраняется при циклическом преобразовании текст → float/double/longdouble → текст без изменений из-за округления или переполнения
(константа-макрос)
FLT_MIN_EXPDBL_MIN_EXPLDBL_MIN_EXP
наименьшее отрицательное целое число, при котором FLT_RADIX в степени на единицу меньше этого числа является нормализованным значением типов float, double и longdouble соответственно
(константа-макрос)
FLT_MIN_10_EXPDBL_MIN_10_EXPLDBL_MIN_10_EXP
наименьшее отрицательное целое число, при котором 10 в этой степени является нормализованным значением типов float, double и longdouble соответственно
(константа-макрос)
FLT_MAX_EXPDBL_MAX_EXPLDBL_MAX_EXP
наибольшее положительное целое число, при котором FLT_RADIX в степени на единицу меньше этого числа является представимым конечным значением типов float, double и longdouble соответственно
(константа-макрос)
FLT_MAX_10_EXPDBL_MAX_10_EXPLDBL_MAX_10_EXP
наибольшее положительное целое число, при котором 10 в этой степени является представимым конечным значением типов float, double и longdouble соответственно
(константа-макрос)
FLT_MAXDBL_MAXLDBL_MAX
наибольшее конечное значение типов float, double и longdouble соответственно
(константа-макрос)
FLT_EPSILONDBL_EPSILONLDBL_EPSILON
разность между 1.0 и следующим представимым значением для типов float, double и longdouble соответственно
(константа-макрос)
FLT_MINDBL_MINLDBL_MIN
наименьшее нормализованное положительное значение типов float, double и longdouble соответственно
(константа-макрос)
FLT_TRUE_MINDBL_TRUE_MINLDBL_TRUE_MIN
(C++17)
наименьшее положительное значение типов float, double и longdouble соответственно
(константа-макрос)
Специальные значения (начиная с C++26)
INFINITY
(C++11)
вычисляется как положительная бесконечность (если существует)
(константа-макрос)
NAN
(C++11)
вычисляется как тихое NaN типа float (если существует)
(константа-макрос)
FLT_SNANDBL_SNANLDBL_SNAN
(C++26)
вычисляется как сигнальное NaN типов float, double и longdouble соответственно (если существует)
(константа-макрос)

Обзор

// all freestanding
#define __STDC_VERSION_FLOAT_H__ 202311L

#define FLT_ROUNDS       /* see description */
#define FLT_EVAL_METHOD  /* see description */
#define FLT_RADIX        /* see description */
#define INFINITY         /* see description */
#define NAN              /* see description */
#define FLT_SNAN         /* see description */
#define DBL_SNAN         /* see description */
#define LDBL_SNAN        /* see description */
#define FLT_MANT_DIG     /* see description */
#define DBL_MANT_DIG     /* see description */
#define LDBL_MANT_DIG    /* see description */
#define FLT_DECIMAL_DIG  /* see description */
#define DBL_DECIMAL_DIG  /* see description */
#define LDBL_DECIMAL_DIG /* see description */
#define FLT_DIG          /* see description */
#define DBL_DIG          /* see description */
#define LDBL_DIG         /* see description */
#define FLT_MIN_EXP      /* see description */
#define DBL_MIN_EXP      /* see description */
#define LDBL_MIN_EXP     /* see description */
#define FLT_MIN_10_EXP   /* see description */
#define DBL_MIN_10_EXP   /* see description */
#define LDBL_MIN_10_EXP  /* see description */
#define FLT_MAX_EXP      /* see description */
#define DBL_MAX_EXP      /* see description */
#define LDBL_MAX_EXP     /* see description */
#define FLT_MAX_10_EXP   /* see description */
#define DBL_MAX_10_EXP   /* see description */
#define LDBL_MAX_10_EXP  /* see description */
#define FLT_MAX          /* see description */
#define DBL_MAX          /* see description */
#define LDBL_MAX         /* see description */
#define FLT_EPSILON      /* see description */
#define DBL_EPSILON      /* see description */
#define LDBL_EPSILON     /* see description */
#define FLT_MIN          /* see description */
#define DBL_MIN          /* see description */
#define LDBL_MIN         /* see description */
#define FLT_TRUE_MIN     /* see description */
#define DBL_TRUE_MIN     /* see description */
#define LDBL_TRUE_MIN    /* see description */

См. также

Документация C о пределах типов с плавающей точкой

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/header/cfloat

Spec-Zone.ru

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