この問題はほとんどのコンピュータ言語で発生します。 無限の精度を持つ「実数」(数学の対象)を、有限の表現能力しかないコンピュータ処理系で扱う以上、どうあがいても不可避な問題です。 でちゃんと回避方法も考えられてて、 実数の比較の場合は、同値判定を用いず if x==y のかわりに if abs(x-y) < 0.0001 のようにある程度の誤差を許容する形で比較します。