See https://play.golang.org/p/cAMvG8O0V5J .
This looks like a simple oversight. It appears that at least for hexadecimal floats, the change is as simple as not requesting base=10 in the implementation of Rat.String. We might also want to accept general integer values.
At the very least, this should be documented if we don't change it.