我在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
要将浮点转换为小数点后最多有个N位但不包含尾随0的字符串,可以使用
round()
然后转换为字符串我在发布后发现的一个方法是:
我仍然想知道是否有可能更优雅
我不确定裸字符串格式是否可以实现这一点,但您可以:
或者为什么不
rstrip
:Numpy可以做得更好:
相关问题 更多 >
编程相关推荐