From: pegacorn Date: 2007-01-15T09:53:40+09:00 Subject: [ruby-list:43123] Re: 浮動小数点を比較するには # ruby 固有の話ではなく、浮動小数の一般的な話題ですが… 07/01/13 に wada toshiki さんは書きました: > KURODA Hirakuさん wrote: > > ところで > >> (self - b).abs * abs は、(self - b).abs / abs の誤りだと思うのですが、 > > > > この処理って、 > > (self-b).abs > > では駄目なんでしょうか?更にabs倍したり割ったりする意味が良く分かりません > > でした。もしかして、レシピブックの方に何か根拠が載ってたりします? 比較する数が大きければ許容値も大きく、 比較する数が小さければ許容値も小さくするのが良いだろう という考えだと思います。 で、比較する数と許容値との関係は、「比例」が良いだろうという考えで 導き出されたのが、 > ネットで検索したらこのようなのもありました。 > > http://boost.cppll.jp/HEAD/libs/test/doc/floating_point_comparison.htm ここに書かれている式だと思います。 ちなみに、書籍版の C プログラミング FAQ (ISBN4-8101-8097-2) に 書かれている話も参考になると思います。 んで、無理やり ruby の話に持っていくと、 「何れの方法で比較するにしても、実装は適切に隠蔽しましょう」 という話になります(?) -- pegacorn