А вы знали?



Тип float часто бывает очень неточным. See also: IEEE 754

Но многие даже не представляют насколько. Вот вам пример, чем больше чисел ты складываешь, тем больше ошибка:





sum([.9] * 1_000)

# 899.9999999999849



sum([.9] * 1_000_000)

# 900000.0000153045





Если вы хотите убрать ошибку при сложении множества флоутов в списке, вам поможет math.fsum:



import math



math.fsum([.9] * 1_000_000)

# 900000.0