使用Django,我有一个包含“48.6834”的变量 它的类型是unicode。
我想在float中转换这个变量。当我float(MyVar)
时,我获得了48.6。
问题是它是一个纬度,我想保持精度。
我也试过unicodedata,但似乎不可能,因为它不是一个字符(需要一个Unicode字符作为参数)
你知道我怎样才能得到精确的变种?
我的代码:
print type(request.POST['lat'])
print request.POST['lat']
lat = float(request.POST['lat'])
print type(lat)
print lat
控制台结果:
<type 'unicode'>
48
<type 'float'>
48.0
答案 0 :(得分:1)
你得不到48.6
......你得到一个漂浮物
>>> float(u"48.6834")
48.683399999999999
你可以用格式字符串来表示你喜欢的方式
>>> "%0.4f"%float(u"48.6834") #0 padded float with 4 decimal places
'48.6834'
如果您非常担心floating point errors
,您可能正在寻找Decimal模块>>> from decimal import Decimal
>>> Decimal(u"48.6834")
Decimal('48.6834')