string.format中的可变小数位数

时间:2015-04-09 15:39:45

标签: python python-3.x

我想改变这个:

my_number = 3.1415928

if precision == 2:
    my_string = "{0:.2f}".format(my_number)
elif precision == 3:
    my_string = "{0:.3f}".format(my_number)
elif precision == 4:
    my_string = "{0:.4f}".format(my_number)
elif precision == 5:
    my_string = "{0:.5f}".format(my_number)

这样的事情:

my_number = 3.1415928

my_string = "{SOMETHING_DEPENDING_ON_PRECISION_HERE}".format(my_number)

是否有可能以及如何做到这一点?

1 个答案:

答案 0 :(得分:4)

除了Vaultah的(优秀)建议之外,您还可以使用旧样式格式化的splat来做到这一点

precision = 2
my_num = 3.1415928
my_string = "%0.*f"%(precision,my_num)

Vaultah(现已粉碎的建议)

"{0:0.{prec}f}".format(my_num,prec=precision)