the calculations are all done internally as floating point with no loss,
This is a fallacy; floating point (or fixed point, for that matter) calculations are not lossless*
. There is no such thing as infinite precision in computing.
Integer calculations, on the other hand, are
lossless as long as you don't go out of bounds.*
Not all floating point or fixed point calculations are lossy, though.