Python math.fsum() 方法



Python math.fsum() 方法用于计算浮点数的可迭代对象(例如列表或元组)的总和。它减少了使用内置 + 运算符将大量浮点值相加时可能发生的精度损失。

例如,如果您有一个浮点数序列 [0.1, 0.2, 0.3],则与标准 sum([0.1, 0.2, 0.3]) 方法将返回更准确的结果,与标准 sum([0.1, 0.2, 0.3]) 相比,标准sum(由于浮点运算的精度有限)可能会产生舍入误差。

语法

以下是 Python math.fsum() 方法的基本语法 -


 math.fsum(iterable)

参数

此方法接受包含浮点数的可迭代对象(例如列表、元组或任何其他可迭代对象)作为要计算总和的参数。

返回值

该方法返回一个 float,它表示可迭代对象中数字的总和。

示例 1

在下面的示例中,我们使用 math.fsum() 方法计算数字 “[0.1, 0.2, 0.3]” 之和 -


import math
numbers = [0.1, 0.2, 0.3]
result = math.fsum(numbers)
print("The result obtained is:",result) 	

输出

获得的输出如下 -

The result obtained is: 0.6

示例 2

在这里,我们使用生成器表达式为 i 生成 0.1/i 的数字,范围从 “1 到 5”。然后我们使用 math.fsum() 方法计算这些数字的总和 -


import math
numbers = (0.1 / i for i in range(1, 6))
result = math.fsum(numbers)
print("The result obtained is:",result) 	

输出

以下是上述代码的输出 -

The result obtained is: 0.22833333333333333

示例 3

如果我们将整数作为参数传递给 fsum() 方法,它将返回一个浮点数 −


import math
numbers = [1, 2, 3, 4, 5]
result = math.fsum(numbers)
print("The result obtained is:",result) 	

输出

我们得到的输出如下所示 -

The result obtained is: 15.0

示例 4

在此示例中,我们使用 math.fsum() 方法计算空列表的总和 -


import math
numbers = []
result = math.fsum(numbers)
print("The result obtained is:",result) 	

输出

生成的结果如下所示 -

The result obtained is: 0.0