我想将浮点数的格式严格设置为3或4个小数位。

例如:

1.0     => 1.000   # 3DP
1.02    => 1.020   # 3DP
1.023   => 1.023   # 3DP
1.0234  => 1.0234  # 4DP
1.02345 => 1.0234  # 4DP


'{:.5g}'.format(my_float)'{:.4f}'.format(my_float)的组合类型。

有任何想法吗?

最佳答案

假设我了解您的要求,则可以将其格式化为4,然后在尾随的'0'(如果有的话)的后面加上0。像这样:

def fmt_3or4(v):
    """Format float to 4 decimal places, or 3 if ends with 0."""
    s = '{:.4f}'.format(v)
    if s[-1] == '0':
        s = s[:-1]
    return s

>>> fmt_3or4(1.02345)
'1.0234'
>>> fmt_3or4(1.023)
'1.023'
>>> fmt_3or4(1.02)
'1.020'

关于python - 浮点格式格式化为3或4个小数位,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27240259/

10-11 03:24