09/01/10 19:51:08
>>323
浮動小数点だから
何かを計算した結果の浮動小数点の値と、
それ以外の数式で何かを計算した(あるいは計算していない)浮動小数点の値が、
全く同じになるというようなことはふつう無い
だから、小数を含んでいる数値は絶対にイコールで比較してはいけない
どうしても比較したい場合は、たとえばその差を誤差並に小さな数 Float::EPSILON と比較する
irb> (3.2 - 2.0) -1.2 < Float::EPSILON
false
irb> (3.2 - 2.0) -1.2 < Float::EPSILON*10
true
10倍や100倍以内なら同じ数値とみなしてよい