小数分隔符的问题

Problems with decimal separator

我有 latitude/longitude 个数字,例如:-4726786457893145

但我需要一个小数分隔符,例如:-47.26786457893145

我试过 'format' 或 'for' 结构但没有成功。我什至转换为列表,然后插入一个点,然后再次转换为浮点数,但不适用于所有数字,我不知道为什么。 我很感激你的帮助。谢谢

这是我的部分代码:

latitude = []
longitude = []
for i in range(len(data['Latitude'])):
    a = list(str(data['Latitude'][i].replace(',','')))
    a.insert(3,'.')
    str1 = ''.join(a)
    latitude.append(float(str1))

    a = list(str(data['Longitude'][i].replace(',','')))
    a.insert(3,'.')
    str1 = ''.join(a)
    longitude.append(float(str1))

看起来您正在删除 , 而不是尝试将 . 插入到固定位置。用 .replace(',','.') 替换一个应该更正确 比起您的代码片段将看起来像这样(经过一些简化):

latitude = [lat.replace(',','.') for lat in data['Latitude']]
longitude = [lon.replace(',','.') for lon in data['Longitude']]

我做的这个函数...可以写得更清楚...将 -4726786457893145 变成 -47.26786457893145.

def decimal_add(n):
    if n < 0:
        sign = -1
        int_part = float(str(n)[1:3])
        decimal_part = float(str(n)[3:])/10**(len(str(n))-3)


    else:
        sign = 1
        int_part = float(str(n)[0:2])
        decimal_part = float(str(n)[2:])/10**(len(str(n))-2)
    number = (int_part+decimal_part) * sign
    return number

来自 jupyter notebook 的示例: