14 подписчиков
А вы знали?
Тип 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
Около минуты
7 апреля 2023