如何在Ruby中将坐标字符串的两个独立部分取整?

时间:2018-11-17 13:12:36

标签: ruby-on-rails ruby

我有一个字符串58.1365784, 17.1916815,它是一些经纬度的数据。我想要返回的是两个坐标,但是四舍五入到小数点后四位,例如58.1365, 17.1916。如果只是一个数字,我可以做x.round(4),但这显然摆脱了字符串的另一部分...

1 个答案:

答案 0 :(得分:1)

一种方法:

coords = '58.1365784, 17.1916815'
coords.split(', ').map { |e| e.to_f.round(4) }

它返回一个四舍五入到四舍五入的浮点数数组:

#=> [58.1366, 17.1917]

它可以使用 split https://ruby-doc.org/core-2.5.1/String.html#method-i-split)返回两个字符串的数组,然后使用 map https://ruby-doc.org/core-2.5.1/Array.html#method-i-map)转换为float和一轮。

如果要返回字符串,只需在末尾添加.join(', ')

#=> "58.1366, 17.1917"