
Баг: Игнорирование эффекта "Слон и муравей" (сложение чисел разного масштаба)
Что делают:
Складывают очень большое и очень маленькое число, ожидая, что маленькое повлияет на результат.
Например: 1e15 + 0.000001.
Почему ошибка:
В float64 мантиссы хватает только на ~15–16 значащих цифр. При выравнивании порядков маленькое число теряется ("испаряется").
Как правильно:
Сначала складывать все маленькие числа между собой, затем прибавлять к большому.
Если критично – использовать арифметику с повышенной точностью (например,
decimal).
Загрузка...