Python, print all floats to 2 decimal places in output

前端 未结 7 1112
野性不改
野性不改 2020-12-07 18:38

I need to output 4 different floats to two decimal places.

This is what I have:

print \'%.2f\' % var1,\'kg =\',\'%.2f\' % var2,\'lb =\',\'%.2f\' % va         


        
相关标签:
7条回答
  • 2020-12-07 19:08

    If you just want to convert the values to nice looking strings do the following:

    twodecimals = ["%.2f" % v for v in vars]
    

    Alternatively, you could also print out the units like you have in your question:

    vars = [0, 1, 2, 3] # just some example values
    units = ['kg', 'lb', 'gal', 'l']
    delimiter = ', ' # or however you want the values separated
    
    print delimiter.join(["%.2f %s" % (v,u) for v,u in zip(vars, units)])
    Out[189]: '0.00 kg, 1.00 lb, 2.00 gal, 3.00 l'
    

    The second way allows you to easily change the delimiter (tab, spaces, newlines, whatever) to suit your needs easily; the delimiter could also be a function argument instead of being hard-coded.

    Edit: To use your 'name = value' syntax simply change the element-wise operation within the list comprehension:

    print delimiter.join(["%s = %.2f" % (u,v) for v,u in zip(vars, units)])
    Out[190]: 'kg = 0.00, lb = 1.00, gal = 2.00, l = 3.00'
    
    0 讨论(0)
提交回复
热议问题