2006年7月 5日

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

あだちです

古典的に情報落ち分を考慮して計算するのも有効です
#floatが0.001を表現できないことが本質なのでこの回答はちょっと違う気もします

#それと,どっかで見たとかいわないで(≧□≦)

x = [0.0]

lost = cur = pre = 0.0
100.times {
cur = pre + (0.001 + lost)
lost = (0.001 + lost) - (cur - pre)
pre = cur
x << cur
}
p x

この計算方法は計算精度をかなり上げますが,
きれいに有効数字に丸めてくれるかちょっと自信がないです.
(情報落ち分を考えるとやってくれるはずですが)


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




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