python - string.format 中小数位数可变

标签 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)

是否可行,如何实现?

最佳答案

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

关于python - string.format 中小数位数可变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29543012/

相关文章:

python - 使用冒号表示法选择 NumPy 数组中的特定列

python - 在 Python 中将 'bytes' 对象分成 block

Python "regex"模块 : Fuzziness value

python - 在 pandas 的 datetime64 系列上使用 `apply`

python - 关闭连接Socket抛出 'Invalid syntax with except IOError'

django - 我如何将最近保存的数据发送到 django 中同一 View 函数中的模板中

python - 用 sympy 对方程进行数值计算

python - 从声明返回 "str"的函数返回 Any,同时返回 Dict val

python - numpy 调用类方法的行为名称(如果定义)?

python 3 Tkinter ComboBox 没有获得值(value)