The ranges of the integer types are implementation-defined. The header <limits> provides the std::numeric_limits<T> template which provides the minimum and maximum values of all fundamental types. The values satisfy guarantees provided by the C standard through the <climits> and (>= C++11) <cinttypes> headers.

For floating-point types T, max() is the maximum finite value while min() is the minimum positive normalized value. Additional members are provided for floating-point types, which are also implementation-defined but satisfy certain guarantees provided by the C standard through the <cfloat> header.

* `std::numeric_limits<float>::digits10` equals `FLT_DIG`, which is at least 6.
* `std::numeric_limits<double>::digits10` equals `DBL_DIG`, which is at least 10.
* `std::numeric_limits<long double>::digits10` equals `LDBL_DIG`, which is at least 10.