2006年7月 4日

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

From: Sato Hiroshi <hirocy.f01@xxxxx>
Subject: [ruby-list:42503] floatの値がずれる
Date: Tue, 4 Jul 2006 18:38:19 +0900

るびきちです。

> floatをどんどん加算していくと,ときどき期待する値からずれることがあります.
> # rubyの問題ではないかもしれませんが...


これはruby以前の問題で、浮動小数点数の仕様(丸め誤差)です。
10進数で1/3が無限小数になるように、2進数で0.001は無限小数になるのです。

> これを回避する方法はないでしょうか?

1回の演算ごとに丸め誤差が生じるので浮動小数点数演算の回数を減らす。
または、固定小数点数ライブラリ(BigDecimal)を使ってみましょう。
--
rubikitch
http://www.rubyist.net/~rubikitch/

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




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