如何解决如何在Python中格式化以宽度而非精度分隔的浮点数?
我正在寻找一种在Python中格式化数字字符串的方式,无论精度如何,其宽度都是固定的。我将在下面给出一个示例:
假设我要设置固定宽度= 8且精度= 4的浮点格式。如果我使用以下代码:
number = 3.141516
'{:8.4f}'.format(numero)
适用于少量数字。但是,如果我要格式化1000000这样的数字,则输出为1000000.0000
,因此宽度大于8。
有没有办法设置格式化程序,使我在这种情况下可以得到固定的宽度?
预先感谢
解决方法
我不确定您要问什么。宽度8应该包含点吗?
看看这是否回答了您的问题:
print(f'{str(float(number)) + "0"*8}'[:8])
,但是请注意,在7位数整数中,最后一个点将留下一个点,因此您需要捕获此异常。我猜想是在数字前面加上0并替换点,以便它保持8宽度,但这取决于您要搜索的内容。
,数字的宽度还取决于精度。如果需要固定宽度,建议您使用f个字符串,并将精度设置为等于宽度,以防精度值大于宽度。
f个字符串的语法:f'{value:{width}。{precision}}'
- 精度包括整数+十进制值
这是您可以使用的方式:
n = 3.141516
print(f'{n:{8}.{4}}')
您将获得的输出是:
3.142
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。