Here are some tips, but not the answer:
4.6 The praleue value of type float can be converted to prvalue of type double. The value does not change. This conversion is called floating point promotion ....
4.8. A floating point type value can be converted to a prvalue of another floating point type. If the original value can be accurately represented in the destination type, the result of the conversion is that exact representation. If the source value is between two adjacent target values, the result of the conversion is the implementation-determined selection of any of these values.
source share