hash = {"1"=>"53.0", "3"=>"50.30", "5"=>"1.600", "7"=>"63.0", "9"=>"103.400"}

上記のような場合にvalueの最大値103.400を検索し、そのkeyの"9"を出力したいのですが上手くいきません。

以下のようにvalueを文字列から数値にしてmaxを求めてその値を検索すればいいかと思いましたが上手くいかずnilが返ってきます。

hash = {"1"=>"53.0", "3"=>"50.30", "5"=>"1.600", "7"=>"63.0", "9"=>"103.400"}
p hash1 = hash.values.map(&:to_f)
p a = hash1.max.to_s
p hash.find{|k,v| v == a }

小数点以下の0の表記が問題なのかなと思いますが、求め方自体が無理やり感があるような気がします。
他にも何か求め方があれば教えて頂きたいです。