It has to be done here because Float % Float gives a precision that is the greater of the two precisions. A Rational is of infinite precision and I shouldn't convert it to a float at a finite precision to do the calculation -- this leads to degredation of the result. I think I posted an example, perhaps on the discussion page.