From: Take_tk Date: 2002-12-06T14:39:48+09:00 Subject: [ruby-list:36690] Re: 1.1 < 61.1 - 60.0 たけ(tk)です [ruby-list:36686] 1.1 < 61.1 - 60.0 にて Shin-ichiro HARA さん曰く: > 私の本の読者から、成績処理のプログラム中に 1.1 < 61.1 - 60.0 が > 真になってしまって困っている、と報告を受けたんですが、どうアド > バイスしたらいいでしょう? > どうするんしょうか?つまり入学試験みたいな、測定値自体はアバウト > なわりには判定基準はやたらシビアな場合。 > Float_fixed_cmp.rb を作って require すれば? ---- a = 1.1 b = 61.1 - 60.0 p( a < b) #=> true p( a == b ) #=> false p( a <=> b ) #=> -1 #-- Float_fixed_cmp.rb class Float FIX=10000.0 def fix (self*FIX).to_i end def <=>(other) self.fix <=> other.fix # Integer#<=> end def ==(other) self.fix == other.fix # Integer#== end def <(other) self.fix < other.fix # Integer#< end end #-- p( a < b) #=> false p( a == b ) #=> true p( a <=> b ) #=> 0 ----  Float の比較演算子は Float#<=> を使っていないんですね…… Take_tk = KUMAGAI Hidetake たけ(tk)=熊谷秀武