std::numeric_limits::max_digits10

From Cppreference

Jump to: navigation, search
static constexpr int max_digits10
(C++11 feature)

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.

[edit] Standard specializations

T value of std::numeric_limits<T>::max_digits10
/* 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)

[edit] See also

radix
the radix or integer base used by the representation of the given type
(public static member constant)
digits
number of radix digits that can be represented without change
(public static member constant)
digits10
number of decimal digits that can be represented without change
(public static member constant)
min_exponent
one more than the smallest negative power of the radix that is a valid normalized floating-point value
(public static member constant)
max_exponent
one more than the largest integer power of the radix that is a valid finite floating-point value
(public static member constant)