知人から Hash の key に小数を使うとうまくいかないと相談を受けました。
とりあえず「文字列に変換して key とすれば」と答えておきましたが、
原因は何でしょうか? 以下にその質問メールを引用します。

 > @h = Hash.new
 > @h[0.01] = 2.576
 > @h[0.02] = 2.326
 > @h[0.03] = 2.170
 > @h[0.04] = 2.054
 > @h[0.05] = 1.960
 > @h[0.06] = 1.881
 > @h[0.07] = 1.812
 > @h[0.08] = 1.751
 > @h[0.09] = 1.695
 > 
 > @keys = @h.keys
 > print @keys, "\n"
 > 
 > for i in @keys
 >     print @h[i], " "
 > end
 > print "\n"
 > 
 > print @h[0.01], " ", @h[0.02], " ", @h[0.03], " ", @h[0.04], " ", @h[0.05], " ", @h[0.06], " ", @h[0.07], " ", @h[0.08], " ", @h[0.09], "\n"
 > 
 > を実行すると,
 > 
 > % ruby test.rb
 > 0.010.080.090.060.020.030.04
 > 2.576 1.751 1.695 1.812 2.326 1.96 2.054 
 > 2.576 2.326 1.96 2.054 1.96 1.812 1.812 1.751 1.695
となる。
0.03 と 0.05, 0.06 と 0.07 (だけ)が同一視されているようですね。
確認に使用したバージョンは 1.0-970909 (sparc-solaris2.5.1) です。