When a long double
is converted to a double
or float, or
when a double
is converted to a float,
the original value is rounded to the nearest representable value
as the new type. If the original value is equally close to two distinct
representable values, then the value chosen is the one with the
least significant bit equal to zero.
Conversions between floating-point types involve
a change in the exponent, as well as the mantissa. It is possible
for such a conversion to overflow.