Сайт работает в тестовом режиме - все замечания, предложения и информацию о найденных ошибках направляйте, пожалуйста, в Telegram-группу
Курс в процессе наполнения. Полный курс доступен на Степике

Баг: Незнание переполнения (overflow) и исчезновения (underflow)

Что делают:
Умножают math.MaxFloat64 * 2.0 и ждут какого-то огромного числа, а получают +Inf.
Или умножают 1e-200 * 1e-200 и ждут 1e-400, а получают 0.

Почему ошибка:
При переполнении результат выходит за пределы максимального порядка и превращается в бесконечность. При исчезновении порядок падает ниже минимального – число схлопывается в ноль.

Как правильно:
Проверять диапазоны входных данных. Если операция может дать Inf или 0 неожиданно – использовать защитное программирование (например, проверять через math.IsInf).

Загрузка...