将精度作为参数传递给python格式

hak*_*aki 4 python string string-formatting python-2.7

我想用precision作为参数格式化一个浮点数

"{0:,.2f}$".format(1000 + 1/float(3))
'1,000.33$'
Run Code Online (Sandbox Code Playgroud)

如何将小数位数(.2f)作为参数传递?

仅供参考,我知道我可以使用,round(n,precision)但是当precision=0它打印时,0.0这不是我想要的.我也可以连接,"{0:,." + str(precision) + "2f}f".format(n)但你知道......

iCo*_*dez 8

您可以嵌套格式字段以动态指定精度:

>>> "{1:,.{0}f}$".format(2, 1000 + 1/float(3))
'1,000.33$'
>>>
Run Code Online (Sandbox Code Playgroud)

来自文档:

format_spec字段还可以包括在其内嵌套替换字段.这些嵌套的替换字段只能包含字段名称; 不允许使用转换标志和格式规范.在解释字符串format_spec之前, 替换字段中的替换字段format_spec.这允许动态指定值的格式.