[#43103] 浮動小数点を比較するには — wada toshiki <wada-ts@...>

お世話になります。

21 messages 2007/01/11
[#43105] Re: 浮動小数点を比較するには — NISHIMATSU Takeshi <t_nissie@...> 2007/01/11

> Rubyレシピブック(P290)で 比較する数値の差を Float::EPSILON と比較する方法があり

[ruby-list:43121] Re: 浮動小数点を比較するには

From: "きむらこういち" <hogemuta@...>
Date: 2007-01-14 18:44:07 UTC
List: ruby-list #43121
木村です。

07/01/15 に KURODA Hiraku<hiraku@sapporo.email.ne.jp> さんは書きました:

> どうも、書いた側で0.1ずつ足したつもりでも、足した後と足す前との差は0.1
> (のdouble近似)からまた少しずれてしまうみたいですね(桁落ち誤差?)
> このケースだと、有効数字は16桁程度なんでしょうか

そういうのは「桁落ち誤差」とはいいません。
桁落ち誤差は別物です。

0,1自体を正確に表せないのに、何かとの差が0.1と違うというのは
至極当然のような気がするのですが、わたし何か勘違いしていますか?
また、1.1の0.1の部分は、1が存在するので単なる0.1より表現するに
使用できるビット数が減るのですから、その意味からも 1.1 - .1.0 とか
2.1 - 2.0 がそれぞれ 0.1と異なって不思議はないと思います。

あと、double(がIEEE754の倍精度実数だったとして)が保持できる桁数は
仮数部が53bit相当なので、53 * log(2) = 15.9545898 でほぼ16桁で
間違いないです。

-- 
木村浩一
 I thought what I'd do was, I'd pretend I was one of those deaf-mutes
or shoud I?
 mail kbk at kt.rim.or.jp
 web  www.kt.rim.or.jp/~kbk/zakkicho/index.html

In This Thread