Read up on IEEE floating point definitions. Floats are well suited to a 0.0 - 1.0 range, but it's better to say that they're well suited to a "range with given precision" (whatever it is depends upon the numbers you're using).

Hence the topic of this thread about double precision. The example you gave about accuracy applies equally to fixed point math. With a floating point value, however, imagine flying from the moon to earth - your scale will vary considerably, and floating point will handle the transitions much more gracefully than using fixed point.in float if you are at position 10 km, and you try to move 1 mm then you have 1.000000e5 m + 1.000000e-3 m -> 1.000000e5 m, you can't move, because you step size is smaller than the precision.

with int you have 10000000 mm + 1 mm -> 10000001 mm. if you need 0.1mm accuracy then you use 0.1mm as you base unit.

i can't see the benefit of being able to describe a tiny movement if you can't add or subtract it to a location.