The three distinct types
can represent floating-point numbers.
The type double
provides at least as much
precision as float
, and the type long double
least as much precision as double.
The set of values of the type
is a subset of the set of values of the type
; the set of values of the type double
is a subset
of the set of values of the type long double.
An implementation may also provide additional types
that represent floating-point values and define them (and cv-qualified versions thereof) to be
extended floating-point types.
Any additional implementation-specific types representing floating-point values
that are not defined by the implementation to be extended floating-point types
are not considered to be floating-point types, and
this document imposes no requirements on them or
their interactions with floating-point types.
— end note
Except as specified in [basic.extended.fp]
the object and value representations and accuracy of operations
of floating-point types are