我如何从固定长度和宽度的浮点数格式化python字符串

时间:2018-12-01 03:53:36

标签: python string format precision

提供的浮点数是12.3456,我需要将其打印为_12.34,这意味着.之前的数字长度为3,而{之后的长度为{1}}仍然是2。我尝试了这个.,它只给了我'{:.2f}'.format(12.3456),后者在数字12.34之前缩短了一个空格。那么我怎样才能使我的需求成为可能?

4 个答案:

答案 0 :(得分:4)

您可以通过在格式字符串中的句点前加一个数字来指定渲染字符串的总宽度:

>>> '{:6.2f}'.format(12.3456)
' 12.35'

答案 1 :(得分:1)

您可以附加一个.rjust(6)(6个字符,因为3 + 2位数字和一个小数点):

>>> '{:.2f}'.format(12.3456).rjust(6)
' 12.35'

答案 2 :(得分:0)

首先将浮点数转换为2位小数然后对其进行格式化怎么样? 例如,如果您想使用math.floor截断它,或者如果要舍入或使用十进制模块(导入十进制),请使用round()python decimal module

使用math.floor的示例代码:

import math
print('{0:_>6}'.format(math.floor(112.345*100)/100)) #112.34
print('{0:_>6}'.format(math.floor(12.345*100)/100))  #_12.34

答案 3 :(得分:0)

添加到@cody 的回答中,如果你有 python 3.6+,你可以使用 f 字符串

>>> f'{12.3456:6.2f}'
' 12.35'