元组将浮点数转换为字符串

时间:2019-03-17 14:40:32

标签: python

我编写了一个函数,用于从ArcGIS Server返回地址的lat, long。该函数如下:

def get_lat_long(address):
    coordinates = geocode_address(address)
    lat = "{:.2f}".format(coordinates['y'])
    long = "{:.2f}".format(coordinates['x'])
    print(lat, long)  # prints: 42.34 -71.15
    return lat, long

如您所见,lat, long是一个浮点数元组。但是,当我调用此函数并打印类型时,它将返回一个字符串!

print(type(get_lat_long('<some address>')[0]))
# prints <class 'str'>

为什么会发生这种转换?如何保持lat, long为浮点数?

1 个答案:

答案 0 :(得分:3)

进行lat = "{:.2f}".format(coordinates['y'])时,您将lat的值设置为带有两位十进制数字的格式化字符串。 (与变量long相同)

变量的浮点类型不会通过返回元组而转换为字符串,而是通过这种方式进行格式化。

如果在保留类型为float的情况下只想舍入到两位小数,请使用round(number, 2),它将数字四舍五入到两位小数。