【问题标题】:Variable number of decimal digits in string.format [duplicate]string.format 中的可变小数位数 [重复]
【发布时间】:2015-04-09 15:39:45
【问题描述】:

我想改造一下:

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)

有没有可能,怎么做?

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    除了 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)
    

    【讨论】:

    • 如果我想要最小的小数位数怎么办?
    • 使用"%g"会截断无意义的数字
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多