首页 > 解决方案 > 如何检查浮点数列表加起来是否为整数?

问题描述

我想找到一个浮点数列表的总和并检查它是否是一个整数:

l = [0.85, 0.85, 0.15, 0.15]

l显然,总和是 2.0。但由于浮点限制,Python 不同意:

> sum(l)
1.9999999999999998

因此,我选择的方法sum(l).is_integer(), 将返回False

评估列表是否为整数的更好方法是什么?

标签: pythonlistmathfloating-pointsum

解决方案


您可以使用该decimal软件包。

>>> from decimal import Decimal
>>> l = [Decimal(x) for x in ['0.85', '0.85', '0.15', '0.15']]
>>> s = sum(l)
>>> s
Decimal('2.00')
>>> s == int(s)
True

推荐阅读