python格式一个浮动数字打印.123不是0.123

时间:2012-12-08 17:54:40

标签: python

我有一个简单的问题,我认为应该有一个简单的解决方案。如何格式化浮点数,以便只显示小数点后面的数字?我更愿意使用'{}'。format来完成此任务。

>>> n = 0.12345
>>> n
0.12345
>>> str(n)[1:]
'.12345'
>>> '{}'.format(n)
'0.12345'
>>> '{}'.format(str(n)[1:])
'.12345'

我知道我可以使用str(n)[1:],但我不想将数字转换为字符串。

1 个答案:

答案 0 :(得分:4)

我认为没有一个格式字符串可以删除零。但是,您可以使用lstrip

In [25]: n = 0.12345
In [26]: '{:.3f}'.format(n).lstrip('0')
Out[26]: '.123'

至少比str(n)[1:]更安全,如果n等于大于1或小于-1的数字,则会删除一个有意义的数字。