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

时间:2015-02-18 17:55:10

标签: python string python-2.7 string-formatting

我想格式化一个以参数

为精度的浮点数
"{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)那样连接,但你知道......

1 个答案:

答案 0 :(得分:7)

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

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

来自docs

  

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