文字列で返されたハッシュ内の最大値を検索したい

[code]

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

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

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

[code]

    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 }
    
[/code]

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




`to_f` → `to_s` することで、存在しない文字列 `"103.4"` (文字列としての `"103.400"` と `"103.4"`
は異なる) を探すことになってしまっていますね。

[code]

    hash.max_by {|k,v| v.to_f}
    
[/code]

で、値が最大であるキーとその値のペアが配列として返りますので、その1要素目が望みの値となります。




`to_f` → `to_s` することで、存在しない文字列 `"103.4"` (文字列としての `"103.400"` と `"103.4"`
は異なる) を探すことになってしまっていますね。

[code]

    hash.max_by {|k,v| v.to_f}
    
[/code]

で、値が最大であるキーとその値のペアが配列として返りますので、その1要素目が望みの値となります。

