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

Python: format float to a minimum floating point precision if needed

假设我有两个数字 1.21.24898,我该如何设置字符串的格式,使任何精度不够的东西始终固定为两个浮点数 (.2f),但任何东西超过 2 个会保留它们的浮点数吗?

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

print(f'{1.24898:,.2f}')会导致它被固定到2个地方,但我想保留它的所有精度。与 1.2 类似,我希望它打印为 1.20.

我在一个列表中取了一些元素,那个列表有不同的浮点数。检查 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

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

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