Ruby Float to String错误

时间:2011-06-18 16:02:48

标签: ruby

Ruby新手。这段代码出了什么问题?

city_details['longitude'] + "," + city_details['latitude']

我收到此错误:

./player_location.rb:6:in `+': String can't be coerced into Float (TypeError)

2 个答案:

答案 0 :(得分:12)

看起来city_details['longitude']city_details['latitude']的值为Float

您不能像这样在Ruby中将Float添加到String。您可以将所有内容转换为String,然后+,或使用字符串插值。

city_details['longitude'].to_s + "," + city_details['latitude'].to_s

"#{city_details['longitude']},#{city_details['latitude']}"

大多数Rubyist倾向于使用字符串插值。

答案 1 :(得分:6)

它抱怨您尝试将floatstring连接起来。

更好的方法是进行字符串插值:

"#{city_details['longitude']}, #{city_details['latitude']}"

其他可能的解决方案:

  • 您可以通过调用to_s方法将每个浮点数转换为字符串:

    city_details['longitude'].to_s + "," + city_details['latitude'].to_s

  • 或者您可以使用join方法:

    [city_details['longitude'], city_details['latitude']].join(",")