2011年8月24日

[ruby-list:48337] Re: 1.25を %10.1f で出力したときバージョンにより表示に違いがでるのは何故でしょうか。

Rubyからは離れてしまうのですが、もうすこし教えてください。

http://www.exploringbinary.com/inconsistent-rounding-of-printed-floating-point-numbers/

にある 0.45が 0.5 になるのは何故でしょうか。

10進で単純に考えると0.4になりそうです..
単精度で銀行家丸めをしてみると(つまりRubyでない) 0.4になり、倍精度だと0.5になります。

0.45はバイナリで正確に表現できないので、というような説明があるのですが、
10進のまま考えてはいけないのでしょうか。


0.45 = 0.450000000000000011102230246251565404236316680908203125

2011年8月24日11:11 Kenta Murata <muraken@xxxxx>:
> むらたです。
> http://www.exploringbinary.com/inconsistent-rounding-of-printed-floating-point-numbers/
> このページに同様の実験とその結果が載ってますね。


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




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