繁体   English   中英

python:将列表转换成5位小数的列表

[英]python: convert a list into list with 5 decimal places

如何将列表转换为5位小数的列表?

 list1 = [0.23400000000, 0.3456222222, 0.1278234, 0.78433333]

期望:

 list1 = [0.23400, 0.34562, 0.12782, 0.78433]

我不希望0.34562是0.34561,我需要保留原样的值,但要保留5个小数点。

我不相信您可以获得0.23400浮动。 我可以提供的最接近的解决方案是:

list1 = [0.23400000000,0.3456222222,0.1278234,0.78433333]
list1 = [round(i,5) for i in list1]
>>> print(list1)
[0.234, 0.34562, 0.12782, 0.78433]

我不知道为什么您需要0.23400的浮点数,因为它没有提供0.234任何其他数学意义。 除非您真正要查找的是字符串。

您可以使用decimal模块:

import decimal
decimal.getcontext.prec() = 5 # Use 5 decimal places
list1 = [0.23400000000,0.3456222222,0.1278234,0.78433333]
list2 = [decimal.Decimal(x) + decimal.Decimal(0) for x in list1] # addition is necessary to trigger rounding
print(list2) # [Decimal('0.23400'), Decimal('0.34562'), Decimal('0.12782'), Decimal('0.78433')]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM