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

l = [0.85, 0.85, 0.15, 0.15]
l 的总和显然是 2.0。但是 Python 不同意,因为 floating point limitations :

> sum(l)
1.9999999999999998

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

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

最佳答案

您可以使用 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

关于python - 如何检查浮点数列表加起来是否为整数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59253436/

10-11 22:51
查看更多