Python:如果需要,将浮点数格式化为最小浮点精度

时间:2021-01-14 14:37:22

标签: python string printing floating-point decimal

假设我有两个数字 1.21.24898,我如何格式化字符串,以便任何没有足够精度的东西总是固定为两个浮点数(.2f),但还有更多比 2 会保留他们的浮点数?

我希望将其打印为:1.201.24898。有没有办法通过 print 格式或 pythonic 方式做到这一点?

执行 print(f'{1.24898:,.2f}') 会使其固定在 2 个位置,但我想保留其所有精度。同样,对于 1.2,我希望它打印为 1.20

2 个答案:

答案 0 :(得分:0)

我在一个列表中取了一些元素,该列表有不同的浮点数。检查 str(x)[::-1].find('.') 是否大于 2。如果大于 2。保持不变,否则设置该数字的两个精度。

ls = [1.2, 1.24898, 3]
for x in ls:
    if str(x)[::-1].find('.') > 2:
        print(x)
    else:
        print(f'{x:.2f}')

# Output
# 1.20
# 1.24898
# 3.00

答案 1 :(得分:0)

我提出了上一个答案的单行版本

number=1.2
print(max('{:.2f}'.format(number),str(number),key=len))
# Ouput : 1.20
number=1.24898
print(max('{:.2f}'.format(number),str(number),key=len))
# Output : 1.24898
相关问题