假设我有一个函数,它接受float
并返回一个转换为字符串,其预定义的精度为2
位数:
def round_and_trim(x):
return "{0:.2f}".format(round(x,2))
它的工作原理如下:
x = 0.238498
y = round_and_trim(x)
y = "0.24"
如何使此函数采用名为precision
的参数,以便使用precision
中的值而不是转换为硬编码精度值2?
例如
x = 0.238498
y = round_and_trim(x, precision=4)
y = "0.2385"
或:
x = 0.238498
y = round_and_trim(x, precision=3)
y = "0.238"
答案 0 :(得分:5)
您可以嵌套替换字段,例如:
def round_and_trim(x, precision=2):
return "{0:.{prec}f}".format(round(x, precision), prec=precision)
因此,当precision
为3
时,格式字符串将基本上变为"{0:.3f}"
。
来自docs:
A * format_spec *字段还可以在其中包含嵌套的替换字段。这些嵌套的替换字段只能包含字段名称;不允许使用转换标志和格式规范。 * format_spec *中的替换字段在解释* format_spec *字符串之前被替换。这允许动态指定值的格式。