<分区>
我有一个简单的问题,我觉得应该有一个简单的解决方案。如何格式化 float 以便只显示小数点后的数字?我更愿意使用“{}”.format 来完成此操作。
>>> n = 0.12345
>>> n
0.12345
>>> str(n)[1:]
'.12345'
>>> '{}'.format(n)
'0.12345'
>>> '{}'.format(str(n)[1:])
'.12345'
我知道我可以使用 str(n)[1:],但我不想将数字转换为字符串。
标签 python
<分区>
我有一个简单的问题,我觉得应该有一个简单的解决方案。如何格式化 float 以便只显示小数点后的数字?我更愿意使用“{}”.format 来完成此操作。
>>> n = 0.12345
>>> n
0.12345
>>> str(n)[1:]
'.12345'
>>> '{}'.format(n)
'0.12345'
>>> '{}'.format(str(n)[1:])
'.12345'
我知道我可以使用 str(n)[1:],但我不想将数字转换为字符串。
最佳答案
我认为没有删除零的格式字符串。但是,您可以使用 lstrip
:
In [25]: n = 0.12345
In [26]: '{:.3f}'.format(n).lstrip('0')
Out[26]: '.123'
至少这比 str(n)[1:]
更安全,后者会在 n
等于大于 1 或更小的数字时删除有效数字小于-1。
关于python 格式化一个 float 来打印 .123 而不是 0.123,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13780187/