math.fsum: получаем сумму float без «осложнений»
Тип float печально известен своей неточностью. Когда вы складываете два числа, результат может содержать небольшую ошибку. И чем больше чисел, тем выше ошибка:
Если вы хотите устранить это недоразумение, используйте math.fsum():
#math
Тип float печально известен своей неточностью. Когда вы складываете два числа, результат может содержать небольшую ошибку. И чем больше чисел, тем выше ошибка:
sum([0.8] * 1_000)
# 799.9999999999887 вместо 800
Если вы хотите устранить это недоразумение, используйте math.fsum():
import math
math.fsum([.8] * 1_000)
# 800.0
#math
👍20❤1