Whether assigning of single precision IEEE754 float to double is reversible?
Maybe this will help. This is not full answer - just information to think.


  5.3 Floating-Point Format Conversions
  It shall be possible to convert floating-point numbers between all supported formats. If the conversion is to a narrower
  precision, the result shall be rounded as specified in Section 4. Conversion to a wider precision is exact.


IEEE Std 754-1985