FP does not introduce imprecision. Quite the contrary: The continuous rounding (or truncation) triggered by using scaled integers is what introduces imprecision. Whereas exponent scaling in floating point ensures that all the bits in the mantissa are put to good use.
It's a trade-off between precision and predictability. Floating point provides the former. Scaled integers provide the latter.