[#30743] 大きな数の大まかな割り算 — Yukihiro Matsumoto <matz@...>

まつもと ゆきひろです

17 messages 2007/05/01

[#30827] Supporting Fiber — SASADA Koichi <ko1@...>

 ささだです。

22 messages 2007/05/27

[ruby-dev:30743] 大きな数の大まかな割り算

From: Yukihiro Matsumoto <matz@...>
Date: 2007-05-01 23:56:56 UTC
List: 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)の範
囲内で収まるような割り算を行うアルゴリズムをご存じの人はいま
せんか?

In This Thread

Prev Next