我编写了一个函数,用于从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
为浮点数?
答案 0 :(得分:3)
进行lat = "{:.2f}".format(coordinates['y'])
时,您将lat
的值设置为带有两位十进制数字的格式化字符串。 (与变量long
相同)
变量的浮点类型不会通过返回元组而转换为字符串,而是通过这种方式进行格式化。
如果在保留类型为float的情况下只想舍入到两位小数,请使用round(number, 2)
,它将数字四舍五入到两位小数。