The problem is that the range will increase with each operation. E.g. the range in x*y is more than the range in x and so you need to keep track of those ranges. But the ranges themselves will be inaccurate if stored as floating point numbers.
Or just store them as a fraction if you really care about the value not getting corrupted.
Or just store them as a fraction if you really care about the value not getting corrupted.