在Python中使用f字符串动态地将浮点数格式化为可变小数位[重复]

问题描述 投票:0回答:1

我之前曾询问过在 Python 中使用 f 字符串进行格式化时动态调整浮点数中的小数位数。虽然我发现类似的问题可以解决使用 f 字符串进行动态格式化的各个方面,但没有一个问题专门解决基于变量改变精度(小数位)的挑战。

我发现的最接近的讨论集中在[插入方面,例如对齐、宽度等],这并不是我正在努力解决的问题。我的目标是将浮点数格式化为运行时确定的小数位数。

示例

    n = 5  # The number of decimal places should be dynamic
value = 0.345
# Desired output: '0.34500', but with 'n' determining the number of zeroes
value = 0.345

尝试直接应用相关问题的解决方案并未产生我需要的结果,因为它们主要处理静态格式或不直接解决精度问题。

问题:如何修改 f 字符串语法以适应指示格式化输出中小数位数的变量?我正在寻找一种方法,使 f 字符串中浮点数的精度与宽度或对齐方式一样灵活。

python string python-3.6 rounding f-string
1个回答
26
投票

这应该有效:

n = 5
value = 0.345
print(f'{value:.{n}f}') 

输出:

0.34500
© www.soinside.com 2019 - 2024. All rights reserved.