将Decimal转换为float而不删除零Python

时间:2018-02-11 06:38:56

标签: python python-3.x python-2.7

我有一个十进制类型的列表:

lat = [Decimal('28.633300'), Decimal('28.633300'), ..]  # type lat[0] <class 'decimal.Decimal'>

我正在使用此函数将此列表转换为float:

def alchemyencoder(obj):
  if isinstance(obj, decimal.Decimal):
    return float(obj)

lati = []
for i in lat:
    lati.append(alchemyencoder(i))

一切都很好,除非我转换为float时输出会删除零。

例如,lat [0]为28.633300,然后转换为float lati [0]后为28.6333。

为什么删除了零。有没有办法可以保留零

1 个答案:

答案 0 :(得分:2)

您可以使用format输出保留零的字符串,但是,您可能希望跟踪要输出的零数,因为它可以在不同的数字之间进行更改。

x = Decimal('28.633300')
x = float(x)
print("{:.6f}".format(x))

输出:

28.633300