How to round each item in a list of floats to 2 decimal places?

前端 未结 6 1986
有刺的猬
有刺的猬 2021-01-31 07:20

I have a list which consists of float values but they\'re too detailed to proceed. I know we can shorten them by using the (\"%.f\" % variable) operator, like:

6条回答
  •  悲哀的现实
    2021-01-31 07:57

    "%.2f" does not return a clean float. It returns a string representing this float with two decimals.

    my_list = [0.30000000000000004, 0.5, 0.20000000000000001]
    my_formatted_list = [ '%.2f' % elem for elem in my_list ]
    

    returns:

    ['0.30', '0.50', '0.20']
    

    Also, don't call your variable list. This is a reserved word for list creation. Use some other name, for example my_list.

    If you want to obtain [0.30, 0.5, 0.20] (or at least the floats that are the closest possible), you can try this:

    my_rounded_list = [ round(elem, 2) for elem in my_list ]
    

    returns:

    [0.29999999999999999, 0.5, 0.20000000000000001]
    

提交回复
热议问题