As Daniel says, if you do something like
ratepsilon : 2.0d-16
Then rat(192.6988) is exactly half of rat(2*192.6988).
Also, as Daniel almost says, it is not a "workaround" to use rational
numbers. It is mathematically preferable. Floating point numbers are a poor
model of the real numbers, and floating point operations sometimes surprise
people who are not familiar with the calculations. By contrast, rational
numbers have fewer surprises. They just get big and slow.
RJF