A finite set pretending to be the reals
A 64-bit double can hold at most 2 to the 64 distinct values. The real numbers between 0 and 1 alone are uncountably infinite. So the mapping is not an approximation that could be improved with more care; it is a finite set of representable values, and everything else rounds to one of them.
The useful mental model is a ruler with uneven markings. Near zero the markings are dense; far from zero they are far apart. Any computation lands between markings and gets snapped to the nearest one.
This is a deliberate design rather than a compromise. Fixed-point arithmetic spaces its values evenly, which wastes precision on large numbers and runs out of it on small ones. Floating point spends its bits on relative precision instead: roughly the same number of significant digits everywhere, across a range from about 10 to the minus 308 up to 10 to the 308.
The consequences everyone trips over are all downstream of that one choice.

