std::numeric_limits::max_digits10
Материал из cppreference.com
< cpp | types | numeric limits
![]() | Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
staticconstexprint max_digits10 | (начиная с C++11) | |
Значение std::numeric_limits<T>::max_digits10 число база-10 цифр, которые необходимы, чтобы однозначно представляют все различные значения типа
T
, такие как необходимые для сериализации / десериализации в текст. Эта константа имеет смысл для всех типов с плавающей запятой. Оригинал:
The value of std::numeric_limits<T>::max_digits10 is the number of base-10 digits that are necessary to uniquely represent all distinct values of the type
T
, such as necessary for serialization/deserialization to text. This constant is meaningful for all floating-point types. Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
[править]Стандартный специализации
T | Значение std::numeric_limits<T>::max_digits10 Оригинал: value of std::numeric_limits<T>::max_digits10 Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
/* non-specialized */ | 0 |
bool | 0 |
char | 0 |
signedchar | 0 |
unsignedchar | 0 |
wchar_t | 0 |
char16_t | 0 |
char32_t | 0 |
short | 0 |
unsignedshort | 0 |
int | 0 |
unsignedint | 0 |
long | 0 |
unsignedlong | 0 |
longlong | 0 |
unsignedlonglong | 0 |
float | std::floor(std::numeric_limits<float>::digits*std::log10(2)+2) |
double | std::floor(std::numeric_limits<double>::digits*std::log10(2)+2) |
longdouble | std::floor(std::numeric_limits<longdouble>::digits*std::log10(2)+2) |
[править]Заметки
В отличие от большинства математических операций, преобразования с плавающей запятой в текст и обратно' точный тех пор, пока по крайней мере,
max_digits10
были использованы (9 для float, 17 для double): он гарантированно производить тот же плавающей запятой, хотя промежуточное представление текста не является точной. Это может занять более ста десятичных цифр представлять точное значение float в десятичной системе счисления.Оригинал:
Unlike most mathematical operations, the conversion of a floating-point value to text and back is exact as long as at least
max_digits10
were used (9 for float, 17 for double): it is guaranteed to produce the same floating-point value, even though the intermediate text representation is not exact. It may take over a hundred decimal digits to represent the precise value of a float in decimal notation.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
[править]См. также
[static] | основание системы счисления или целочисленное основание, используемое представлением данного типа (public static константа-элемент) |
[static] | количество цифр системы счисления , которые могут быть представлены без изменений (public static константа-элемент) |
[static] | количество десятичных цифр, которые могут быть представлены без изменений (public static константа-элемент) |
[static] | на единицу больше, чем наименьшая отрицательная степень системы счисления, которая является допустимым нормализованным значением с плавающей запятой (public static константа-элемент) |
[static] | на единицу больше, чем наибольшая целая степень системы счисления, которая является допустимым конечным значением с плавающей запятой (public static константа-элемент) |