【发布时间】:2021-09-19 06:53:45
【问题描述】:
我看到很多关于在 Python 3 中使用有限的小数位数格式化浮点数的答案,例如:
>>> "{:.4f}".format(3.14159265359)
'3.1416'
但这种格式会保留多余的尾随 0:
>>> "{:.4f}".format(3/4)
'0.7500'
我想要的是以一种很好的方式删除尾随零:
>>> "{:.4f??}".format(3/4)
'0.75'
使用g 格式似乎更接近于此,但它会将小数点前的数字计为总字段宽度的一部分,例如:
>>> "{:.4g}".format(3/4)
'0.75'
是完美的,但是:
>>> "{:.4g}".format(3.14159265359)
'3.142'
而不是所需的3.1416
为了澄清,整数(例如 0 单独)根本不应该有小数。
单独使用format 是否可行,还是我必须通过对格式化数字进行字符串操作来删除尾随零?
我研究的文档页面(除了搜索网络):https://docs.python.org/3/library/string.html#formatspec
【问题讨论】:
-
所以你想要整数?
-
@anarchy 我希望整数完全去掉小数,但如果一个数字有小数,则在小数点后最多显示 4 位(这是
.4f会给我的)但没有尾随零(如果小数点后没有足够的数字,.4f将用零填充)。 -
用整数看看我的答案行得通吗?
标签: python python-3.x format