We have rational (two bigint, one for the numerator and one for the denominator), which I like better than floatingpoint (it's more expressive).
Yeah, this is probably the best that can be done, since any arbitrary-precision float is just gonna be a subset of Q anyway.