691
When a float is promoted to
double or long double, or a
double is promoted to long
double, its value is unchanged.
692
When a double is demoted to
float, a long double is demoted
to double or float, or a value
being represented in greater precision and range than required by its
semantic type (see 6.3.1.8) is explicitly converted to its semantic
type, if the value being converted can be represented exactly in the
new type, it is unchanged.
693
If the value being converted is in the range of values that can be
represented but cannot be represented exactly, the result is either
the nearest higher or nearest lower representable value, chosen in an
implementation-defined manner.
694
If the value being converted is outside the range of values that can
be represented, the behavior is undefined.