ふなばです。

> CLではrationalとrationalizeは違うんですね。Rubyでは両方は要
> らないと思うけど、どっちを採用すべきなのかなあ。CLtLを読むか
> ぎりはrationalizeの方が望ましいような気がするけど(実装は大変
> なんでしょうか)。

両方あればうれしいですが、とりあえず、原さんのだと、

Rational(Math::PI).to_f => 3.14159265358979

なんてできるみたいなので、to_r がどう振る舞うべきなのかわかりませんが、
aFloat.to_r == Rational(aFloat) が成り立つのは自然かもしれません。

class Float; def to_r() Rational(self) end end

で済んじゃうし。

この結果は rational/rationalize どちらでもないのかもしれませんが、CL 
に合せなければならない、といいたいわけではないので、僕としては、不都合
がなく説明できればいいかなと思います。数学な人たちの意見をききたいです。