From: Yusuke ENDOH Date: 2009-05-15T20:49:29+09:00 Subject: [ruby-dev:38461] Re: [Bug:1.9] exact Time and inexact Time 遠藤です。 2009/05/15 0:00 Tanaka Akira : > 一般に数値計算では、値が持つ誤差よりも充分に高い精度を持って > いる数値表現を使う必要があるんじゃないでしょうか。 数値計算の問題もあるかもしれませんが、私はインターフェイスの 問題を気にしています。 卜部さんもおっしゃっていますが、Rational は「誤差がない数値」を 表現しているようにしか見えず、「十分に高い精度を持っている数値」 として使われているとは考え付きません。 そのため、最低でも Float から Rational に暗黙に変換されることが あるのは、何らかの処置をすべき問題だと思います。具体的な方法は ともかく。 > しかし、異なる Epoch へ変換するという用途では double では充 > 分でないこともあるでしょう。 > > どちらも Time 同士の引き算で実現できますが、必要な精度は異な > ります。 いろいろ考えたんですが、Time#to_r を用意したらどうでしょう。 誤差なく Epoch 変換したい人は、to_r して正確な Unix Epoch に してから、Time でなく Rational でやってくれということで。 -- Yusuke ENDOH