python 格式化一个 float 来打印 .123 而不是 0.123

标签 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/

相关文章:

python - 在循环中应用 `lambda` 和 `map`?

python - 如何使用 joblib.Parallel() 并行化其中包含 "continue"的循环?

python - 在python中随机化字典

python - 密码保护特定的 Jupyter 笔记本

python - Django - 编辑 HTML 表行并更新数据库

python - openerp 服务器操作 - python 代码

python - PyQt widget可以存储在局部变量中吗?

python - 类型错误 : 'int' object does not support indexing

python - 仅在 CSV 文件中查找第一个匹配项

python - 当文本略有不同时替换列名称