By zeroing the lower bits, your conversion is less accurate than it could be.
Your code 00111111011110110000000000000000 represents 0.98046875
The code 00111111011110110001010110110101 represents about 0.98079997...
Maybe 9 bits is good enough for your application, but I wonder why you are going through the extra effort of using a standard floating point format, and then throwing away most of its accuracy.
OK , I GOT IT. My application is DCT. I am using this standard floating point representation of the cosine co-efficients. I thought this representation will be more accurate than other kind of representations
I have done a project on DCT too. But i found, using fixed point notation to represent fractions is more efficient for FPGAs since DCT isnt very sensitive to accuracy issues.
Using the single-precision floating point format, the mantissa is a 24-bit value (23+1), representing about seven decimal digits (2exp24 = 1.68·10exp7). By using a 9-bit mantissa, you only get 2 decimal digits of precision (2exp9 = 5.12·10exp2)