math.fsum(iterable)
La función math.fsum devuelve la suma precisa de los valores del iterable que recibe como argumento. Se evita la pérdida de precisión mediante el uso de múltiples sumas parciales.
- iterable: iterable cuyos elementos se desea sumar
El resultado devuelto por la función math.fsum es un número real.
Podemos obtener la suma de un iterable formado por los números enteros 2, 4 y 1 con el siguiente código:
math.fsum([2, 4, 1])
7.0
Obsérvese que el resultado devuelto es un número real aun cuando los elementos del iterable son números enteros.
Hay circunstancias en las que el uso de la función intergrada sum puede devolver un resultado poco preciso. Por ejemplo, si partimos del siguiente iterable compuesto por 10 valores 0.1 (cuya suma es 1):
a = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
...al aplicar la función sum obtenemos el siguiente resultado:
sum(a)
0.9999999999999999
Por el contrario, la función math.fsum ofrece el resultado correcto:
math.fsum(a)
1.0