【问题标题】:Print a float with precision right justified打印精确右对齐的浮点数
【发布时间】:2012-07-14 09:59:30
【问题描述】:

我对使用 python 编程有点陌生,所以请放轻松。我正在尝试调用字符串属性 rjust 并指定浮点的精度。这是代码和示例输出(注意 0.00 不向右对齐):

print '%s: %s %s \tchange: %.2f' % (Instance1.symbol.ljust(5), 
    Instance1.name.ljust(50), Instance1.buyprices.rjust(10), Instance1.val)

输出:

AXP  : American Express Company                          55.38  change: -1.15  
AXR  : Amrep Corp.                                       6.540  change: 0.00

【问题讨论】:

    标签: python string printing floating-point


    【解决方案1】:

    这显示了一个示例,说明如何使用旧的% 格式化方法将输出格式化为带两个小数点:

    v1 = 55.39
    v2 = -1.15
    v3 = 6.54
    v4 = 0.00
    
    print '%8.2f   %8.2f' % (v1, v2)
    print '%8.2f   %8.2f' % (v3, v4)
    

    对应的输出:

       55.39      -1.15
        6.54       0.00
    

    或者,您可以使用“新的和改进的”.format() 功能,该功能将存在一段时间,值得了解。以下将生成与上面相同的输出:

    print '{:8.2f}  {:8.2f}'.format(v1, v2)
    print '{:8.2f}  {:8.2f}'.format(v3, v4)
    

    两组格式化指令都为您的数字分配 8 个空格,将其格式化为小数点后 2 位的浮点数。您必须调整这些值以满足您的需要。

    我认为使用这种方法来格式化您的输出会更容易,因为.format() 会给您很多对输出的控制(包括对齐、填充、精度)。

    【讨论】:

      【解决方案2】:

      没关系,我当然是在发布我的问题后才想出来的……

      changed to this:
          def change_value(self, sym, buy, sell):
              self.sym = sym
              temp = float(buy) - float(sell)
              self.val = "%.2f" % temp
      
      
      
      
      and then called str(Instance1.val).rjust(10)
      

      【讨论】:

        猜你喜欢
        • 2011-03-14
        • 1970-01-01
        • 2021-05-15
        • 1970-01-01
        • 2012-06-09
        • 1970-01-01
        • 1970-01-01
        • 2018-05-09
        • 2021-07-25
        相关资源
        最近更新 更多