true enough, 1/3 was a bad example though. consider 16/3, it would be stored as: 5+1/3, ie, you calculate the result as far as you can and only store the rest as a fraction.
but you are right in general, using gmp is always going to be slower then actual floats and unfortunately automatic upgrades would not work like in the int->bignum case.
greetings, martin.