Normal view

Четырнадцать копеек, которые никто не терял

Четырнадцать копеек в месячном отчёте могут остановить закрытие периода на часы. Разберём, откуда берутся такие расхождения в денежных расчётах, почему привычная арифметика подводит в коде и где именно бэкенд‑разработчику стоит контролировать точность.

Найти 14 копеек

Компилятор удалил вашу проверку на переполнение. И он прав

Проверка на переполнение есть в коде, проходит ревью и работает в отладочной сборке — а после оптимизации исчезает из бинарника. Разберём, почему компилятор имеет на это полное право, как неопределённое поведение влияет на указатели, память и проверки, и чем ловить такие ошибки до того, как они проявятся в рабочей среде.

Разобраться в UB
❌