Rational arithmetic is not a good choice for money, since applications that deal with money probably involve user input and so can be trivially DOS-ed. Money should use decimal arithmetic, like COBOL. If it's good enough for banks, it's good enough for you.