[#43085] 1.9SVN HEADで拡張ライブラリがインストールされない? — okkez <okkez000@...>
okkezといいます。
9 messages
2007/01/02
[#43086] Re: 1.9SVN HEADで拡張ライブラリがインストールされない?
— Yukihiro Matsumoto <matz@...>
2007/01/02
まつもと ゆきひろです
[#43103] 浮動小数点を比較するには — wada toshiki <wada-ts@...>
お世話になります。
21 messages
2007/01/11
[#43105] Re: 浮動小数点を比較するには
— NISHIMATSU Takeshi <t_nissie@...>
2007/01/11
> Rubyレシピブック(P290)で 比較する数値の差を Float::EPSILON と比較する方法があり
[#43112] Re: 浮動小数点を比較するには
— wada toshiki <wada-ts@...>
2007/01/13
NISHIMATSU Takeshiさん wrote:
[#43114] Re: 浮動小数点を比較するには
— KURODA Hiraku <hiraku@...>
2007/01/13
初めまして、黒田と申します。
[#43134] enctype="multipart/form-data"指定したデータについて — "Nobuyuki Inaba" <nobuyuki.inaba@...>
いなばと申します。
5 messages
2007/01/23
[ruby-list:43124] Re: 浮動小数点を比較するには
From:
NISHIMATSU Takeshi <t_nissie@...>
Date:
2007-01-15 02:13:10 UTC
List:
ruby-list #43124
はじめにいいかげんな回答をした西松です。
> > http://boost.cppll.jp/HEAD/libs/test/doc/floating_point_comparison.htm
>
> これを参考にすると、
>
> class Float
> def near_to(b)
> (self - b).abs / abs <= Float::EPSILON &&
> (b - self).abs / b.abs <= Float::EPSILON
> end
> end
>
> こういう感じでしょうか。
これを、
x = 0.0; 19.times{ x += 0.1 }
p 1.9.near_to(x)
のような比較に使うのはやばい気がします。誤差が累積するからです。
比較の目的に沿う範囲で「許容値」をFloat::EPSILON*100とか0.00001とかにすればよいです。
# 浮動小数点数の話はほんとやっかいですね。
# IntelのCPUだとレジスタ間の演算は拡張精度で行われるので、
# 予想以上に精度がよくなったり, 丸めかたが特殊だったりします。
-- 西松タケシ