But you still have divisions, right? How do you represent the exact result of divisions? Many of them have infinitely many decimal points (or binary bits). The only possible way I can think of is by representing them in the form of rational numbers, whose numerator and denominator are further represented by multi-precision integers. But then you quickly run out of memory as simulation proceeds, because the number of bits required for exactly representing numerators and denominators increases exponentially with simulation steps.
So, I still doubt the claim of no round-off error. They probably simply used fixed-point numbers. Which still have round-off errors, but the errors can be exactly canceled out in reverse simulation.