From: Tanaka Akira Date: 2011-05-12T10:56:26+09:00 Subject: [ruby-list:48085] Re: 小数点つき時刻情報とTime#parse 2011年5月10日16:08 EGUCHI Osamu : >> 64bit 整数型の存在に関する仮定に関して、 >> 1.9 で変化したという覚えはないんですが、 >> なにかありましたっけ? > > 64bit 整数型の有無により条件コンパイルで > ある場合は処理系の組み込み型を使い、 > 必要に応じてBignumにシフトチェンジするようです。 time.c の変化を尋ねたのではありません。 64bit 整数型の存在を条件なしに仮定していいか、 という環境に関する想定が Ruby 1.9 で変化したのか、 ということを尋ねたのです。 もし Ruby 1.9 では 64bit 整数型の存在を仮定していい、ということであれば、 存在しないケースを考えずに済むようになり、 (私にとって) 喜ばしく、そのため、この点にはとても強い興味を持っているのですが、 なにか確かな根拠はあるでしょうか。 >>> いま話題にしている1.8では64bit 整数型をイミュレーションするコードはないですが、 >>> そのようなプラットホームでも [ruby-list:48070]で私が示したワークアラウンドは有効です。 >> >> 理解できません。 > > ワークアラウンド= > Cで書かれたTime同士の引き算の桁落ちを Rubyで書いたメソッドで > 回避することができているという意味です。 > #そのようなプラットホーム=bccでコンパイルされた環境 なるほど。理解できました。 > Cで書かれたメソッドを計算結果に変化がある形で変更するのは > (それが精度向上であっても)1.8 には取り込むべきではない > と言うのが私のスタンスです。 ふむ。それはひとつの立場ですね。 ということは、最初の質問に対する答は、 誤差は改善できるが Ruby 1.8 では改善されないので ワークアラウンドでどうにかするなど注意してください、 というところですかね。 浮動小数点のせい、というのはかなりポイントを外している気がするなぁ。 -- [田中 哲][たなか あきら][Tanaka Akira]