2006年7月 6日

[ruby-list:42538] Re: floatの値がずれる

原です。

>ふなばです。
>
>> 例えば意外なことにFloatをBigDecimalに変換することはできません。
>> BigDecimalのインプットはStringですから。意外じゃなくて、原理的に
>> 当然ですけど。
>

>一応あるんじゃないですかね。
>
>ruby -r bigdecimal -r bigdecimal/util -e 'p 100000000000000.1.to_d'
>#<BigDecimal:81106b8,'0.1E15',4(8)>

そうですけど、util.rb の aFloat.to_d の実装は BigDecimal(aFloat.to_s) です。
#もうちょっと工夫の余地はあるかも。

>このあたりいろいろと問題がありそう。
>
>100000000000000.1.to_d.to_f #=> 1.0e+14
>100000000000000.1.to_d.to_r.to_f #=> 1.0e-14

BigDecimal#to_r のバグ?


投稿者 xml-rpc : 2006年7月 6日 12:42
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/42468
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。