Как я могу преобразовать строку ("longint") в число с плавающей точкой, если известно количество десятичных знаков? - PullRequest
2 голосов
/ 25 октября 2019

Учитывая комбинацию широта / долгота в виде строки:

lat = "514525865"
lon = "54892584"

Я хочу преобразовать их в числа с плавающей запятой:

lat = 51.4525865
lon =  5.4892584

Как вы можете видеть, число десятичных знаков известно и данобыть 7.

Я попытался сделать преобразование в массив символов, затем добавив. 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 Ответ

4 голосов
/ 25 октября 2019

Вы можете преобразовать в число с плавающей точкой, а затем разделить на 10 ^ 7

p lat.to_f / 10 ** 7
#=> 51.4525865
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...