我想格式化一个以参数
为精度的浮点数"{0:,.2f}$".format(1000 + 1/float(3))
'1,000.33$'
如何将小数位数(.2f
)作为参数传递?
仅供参考,我知道我可以使用round(n,precision)
,但是当precision=0
打印0.0
时,这不是我想要的。我也可以像"{0:,." + str(precision) + "2f}f".format(n)
那样连接,但你知道......
答案 0 :(得分:7)
您可以嵌套格式字段以动态指定精度:
>>> "{1:,.{0}f}$".format(2, 1000 + 1/float(3))
'1,000.33$'
>>>
来自docs:
format_spec
字段还可以包含嵌套的替换字段 它。这些嵌套的替换字段只能包含字段名称; 不允许使用转换标志和格式规范。该format_spec
内的替换字段在替换之前被替换format_spec
字符串被解释。这允许格式化 要动态指定的值。