Кульминация фильма «Офисное пространство» (1999 год) связана с обработкой переменных. Главный герой придумал способ обогатиться. При вычислении процентов на банковских вкладах происходит округление до целого цента, а доли цента отбрасываются. Трое сотрудников написали и внедрили вирус, заставляющий систему переводить эти доли цента на собственный счёт.
Сценарная задумка не самая новая. Похожее было в «Супермене-3» 1983 года. По сути, это криминальная стратегия под названием «тактика салями».
Зарегистрированы попытки реализации схемы. О самом недавнем случае сообщила в декабре прошлого года газета Seattle Times. 28-летний подсудимый явно вдохновлялся фильмом Майка Джаджа: план действий программист записывал в документе под названием «Проект „Офисное пространство“».
В реальности деньги действительно хранят без дробных частей: либо в специальном финансовом формате, либо в виде целочисленной переменной. Например, могут хранить сумму в виде целого числа копеек, а при отображении рублей делить на 100.
Если же мыслить наивно и полагаться на переменные типа с плавающей запятой, неизбежны ошибки арифметики — получится, что 0,1 + 0,2 = 0.30000000000000004. Такое случается, потому что компьютер десятичную дробь считать не умеет, а оперирует мантиссой и порядком степени с числами в двоичной системе счисления.
Впрочем, помнят об этом не все. К примеру, на странице заказа такое показывает «Мегамаркет». Очевидно, это мелкая ошибка фронтенда: сами платежи обрабатываются корректно.