首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python:将列表转换为5位小数的列表

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

Stack Overflow用户
提问于 2015-09-13 13:15:52
回答 2查看 181关注 0票数 0

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

代码语言:javascript
复制
 list1 = [0.23400000000, 0.3456222222, 0.1278234, 0.78433333]

期望:

代码语言:javascript
复制
 list1 = [0.23400, 0.34562, 0.12782, 0.78433]

我不期望0.34562是0.34561,我需要保留它的值,但有5个小数点。

EN

回答 2

Stack Overflow用户

发布于 2015-09-13 13:21:01

我不相信你能得到一个0.23400浮点数。我能提供的最接近的解决方案是:

代码语言:javascript
复制
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提供任何额外的数学意义。除非你真正想要的是一个字符串。

票数 1
EN

Stack Overflow用户

发布于 2015-09-13 13:44:15

您可以使用decimal模块:

代码语言:javascript
复制
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')]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32546558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档