如果知道小数位数,如何将字符串(“ longint”)转换为浮点数?

时间:2019-10-25 12:26:22

标签: ruby function optimization

以经/纬组合为字符串:

lat = "514525865"
lon = "54892584"

我希望将它们转换为浮点数:

lat = 51.4525865
lon =  5.4892584

如您所见,小数位数为KNOWN,为7。

我尝试过转换为char-array,然后添加了。 char然后合并char数组,但感觉超级不合理

def pos_to_float(stringpos)
    chars = stringpos.chars
    chars.insert(-8,'.')
    outstring = chars.join('')
    return outstring.to_f
end

lat = "514525865"
floatlat = pos_to_float(lat)
puts floatlat

> 51.4525865

没有错误,因为它可以工作,但是感觉很愚蠢。还有更好的功能吗?

1 个答案:

答案 0 :(得分:4)

您可以转换为浮点数,然后除以10 ^ 7

p lat.to_f / 10 ** 7
#=> 51.4525865