Арифметика с плавающей запятой требует другого подхода, чем целочисленная

Float and integer arithmetic follow two different paradigms

Арифметика с плавающей запятой требует другого подхода, чем целочисленная

Автор утверждает, что проверка результатов операций с плавающей запятой после их выполнения — распространённая ошибка, порождённая привычками из целочисленной арифметики. Вместо сравнения с FLT_EPSILON или проверки нулевого знаменателя следует просто убедиться, что результат конечен (isfinite). NaN и бесконечности безопасно распространяются через вычисления, а проверка на конечность отсекает вырожденные случаи, не отбрасывая допустимые значения. Приводятся примеры на Rust и C, а также обсуждается проблема в GLSL, где isfinite недоступен.

Этот паттерн настолько повторяющийся и встречается абсолютно везде, в своего рода коллективном психозе о том, как работает арифметика с плавающей запятой.

Ещё за этот день

2026-10-08