The type
double provides at least as much
precision as
float, and the type
long double provides at
least as much precision as
double. The set of values of the type
float is a subset of the set of values of the type
double; the set of values of the type
double is a subset
of the set of values of the type
long double. The value
representation of floating-point types is
implementation-defined
. [
Note 9:
This document imposes no requirements on the accuracy of
floating-point operations; see also
[support.limits]. —
end note]
Integral and floating-point types are collectively
called
arithmetic types
. Specializations of the standard library template
std::numeric_limits shall specify the
maximum and minimum values of each arithmetic type for an
implementation
.