static constexpr int max_digits10 | (since C++11) |

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.

`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` | `FLT_DECIMAL_DIG` or `std::ceil(std::numeric_limits<float>::digits * std::log10(2) + 1` ) |

`double` | `DBL_DECIMAL_DIG` or`std::ceil(std::numeric_limits<double>::digits * std::log10(2) + 1` ) |

`long double` | `DECIMAL_DIG` or `LDBL_DECIMAL_DIG` or`std::ceil(std::numeric_limits<long double>::digits * std::log10(2) + 1` ) |

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.

[static] | the radix or integer base used by the representation of the given type (public static member constant) |

[static] | number of `radix` digits that can be represented without change (public static member constant) |

[static] | number of decimal digits that can be represented without change (public static member constant) |

[static] | one more than the smallest negative power of the radix that is a valid normalized floating-point value (public static member constant) |

[static] | one more than the largest integer power of the radix that is a valid finite floating-point value (public static member constant) |

© cppreference.com

Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.

http://en.cppreference.com/w/cpp/types/numeric_limits/max_digits10