std::numeric_limits::max_digits10
Материал из cppreference.com
|
|
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
<metanoindex/>
<tbody> </tbody> static constexpr int 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
|
signed char
|
0
|
unsigned char
|
0
|
wchar_t
|
0
|
char16_t
|
0
|
char32_t
|
0
|
short
|
0
|
unsigned short
|
0
|
int
|
0
|
unsigned int
|
0
|
long
|
0
|
unsigned long
|
0
|
long long
|
0
|
unsigned long long
|
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)
|
long double
|
std::floor(std::numeric_limits<long double>::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 константа-элемент) |