It is stored in the memory as follows.

0000 1010 .0001 1110 1011 1000 0101 0001

It most certainly is not stored in memory like that, although your latest post is more correct.

The main point is that a floating point representation is an approximation to a value and specifically it is not guaranteed that any given decimal real is precisely representable in the binary floating point form used by your computer. When you output the value you didn't ask for a fixed precision or fixed number of decimal places so the computer just gave you everything it had.

There are all sorts of problems this and the general representation of floating points introduces, for example adding small floating point numbers to large ones can introduce significant errors because the lower precision digits of the smaller number get lost when added to the larger number. The operations == and != are pretty much guaranteed to fail with floating point and you should certainly program as if they always fail (== is always false, != is always true). Even < and > may produce unexpected results at the end of a calculation because the rounding effects put the calculation on the wrong side of the line compared to doing it by hand; although personally I normally prepared to live with this).

If precision is important don't use floating point there are other options; if you decide that floating point will do then always decide on the precision you need and force your output to that precision.

If you really want to know the gritty detail then read

What Every Computer Scientist

Should Know About FloatingPoint Arithmetic.