如何使用Python在字符串中间放置一个数字?

如何使用Python在字符串中间放置一个数字?,python,Python,假设一个浮点数x=3.1234。我想把这个数字打印在包含左侧和右侧X空间的字符串的中间。字符串长度将是可变的。x的精度将是可变的。如果字符串长度=10且精度=2,则输出为3.14。python中是否有任何函数可以返回此值 这在 但由于你显然没有时间在谷歌上搜索: >>> x = 3.1234 >>> length=10 >>> precision=2 >>> f"{x:^{length}.{precision}}" '

假设一个浮点数x=3.1234。我想把这个数字打印在包含左侧和右侧X空间的字符串的中间。字符串长度将是可变的。x的精度将是可变的。如果字符串长度=10且精度=2,则输出为3.14。python中是否有任何函数可以返回此值

这在

但由于你显然没有时间在谷歌上搜索:

>>> x = 3.1234
>>> length=10
>>> precision=2
>>> f"{x:^{length}.{precision}}"
'   3.1    '
在默认情况下,您的精度概念与Python的不一致。您可以通过指定定点格式而不是默认的常规格式来修复它:

>>> f"{x:^{length}.{precision}f}"
'   3.12   '
这种表示法比调用str.format方法更清晰。但在Python 3.5及更早版本中,您需要这样做:

>>> "{x:^{length}.{precision}f}".format(x=x, length=length, precision=precision)
但是再怎么修改格式也不会使3.1234变成3.14。我怀疑这是问题中的一个错误,但如果你真的这么想,那么除了在格式化之前调整x的值之外,别无选择。有一种方法可以做到这一点:

>>> from decimal import *
>>> (Decimal(x) / Decimal ('0.02')).quantize(Decimal('1'), rounding=ROUND_UP) * Decimal('0.02')
Decimal('3.14')

这将您的数字分成大小为0.02的整数块,必要时进行四舍五入,然后再次乘以0.02以获得所需的值

应该是封闭的字符串,具体要求是什么,请发布示例代码或更清楚。你真的认为用文字解释比展示一个更快更容易的示例更容易吗?它将以固定宽度显示,并具有设置的精度和中心对齐,并且保证它能适应宽度。给定数字x、字符串宽度和数字显示的精度,返回应显示的字符串。精度是多少?3.1234没有四舍五入到3.14..f字符串仅在Python3.6中,可能希望使其更通用。假设OP知道“格式”这个词是google需要的,这也不好。