【问题标题】:Python: format float to a minimum floating point precision if neededPython:如果需要,将浮点格式设置为最小浮点精度
【发布时间】:2021-01-14 14:37:22
【问题描述】:

假设我有两个数字 1.21.24898,我如何格式化字符串,以便任何没有足够精度的东西总是固定到两个浮点数 (.2f) 但任何超过 2 的东西都将保留它们的浮动积分?

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

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

【问题讨论】:

    标签: python string printing floating-point decimal


    【解决方案1】:

    我建议使用上一个答案的单行版本

    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
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-05-20
        • 1970-01-01
        • 2013-01-10
        • 2012-06-23
        • 1970-01-01
        • 2013-03-04
        • 2014-09-30
        相关资源
        最近更新 更多