From: Yukihiro Matsumoto Date: 2007-05-02T08:56:56+09:00 Subject: [ruby-dev:30743] 大きな数の大まかな割り算 まつもと ゆきひろです [ruby-core:11069]で報告があったのですが、rationalの分子分母 があまりに大きいとFloatに変換できず、本来有限の値なのに結果 がNaNになってしまうようです。 例 require 'mathn' (((522 / 100 / 365) + 1) ** 365).to_f で、根本的な原因はRational#to_fの実装が def to_f @numerator.to_f/@denominator.to_f end というシンプルなものであるせいなのですが、Float(double)の範 囲内で収まるような割り算を行うアルゴリズムをご存じの人はいま せんか?