Насчёт несходимости цента/копейки/сотой части единицы валюты в печатных формах и накладных. Обычно, когда есть валютная и обычная суммы (суммы в "родной" и второй валюте одновременно). Но может быть и в обычной накладной тоже.
Практическим путём за последние 20 лет вывел закон, с которым пришлось столкнуться практически и почувствовать «на собственной шкуре»:
Математический закон, по которому происходит ошибка на компьютере — чаще всего в бухгалтерии и пересчётах из одной валюты в другую (но и вообще — в математических вычислениях):
Σ(≈A) <> ≈(ΣA)
(словесно: сумма округлений НЕ РАВНА (точнее - не всегда равна) округлению суммы!)
(расширенно: Наиболее точный и общий вариант её
F1(F2(A)) <> F2(F1(A)),
где F1 и F2 – некие функции (в частности, математические или программистские), а А — множество чисел или одно число. Просто, в виде Σ(≈A) <> ≈(ΣA) (с функциями суммы и округления) она наиболее актуальна для современной бухгалтерии и электронного документооборота...)
Именно с этим связано так называемое знаменитое не совпадение «вертикальной» и «горизонтальной» сумм в бухгалтерских документах. При отладке задачи все решения всё равно могут давать погрешность в 1 сантим, копейку, сотую часть валютной денежной единицы. Универсальных решений задачи, насколько я пока знаю — нет... Впрочем, этот «огрех в методах самой математики» существовал ещё, вероятно, при фараонах... В каком же веке его заметили — не знаю, но я формулу вывел четыре-пять лет назад, после того, как получил задания отладить бухгалтерскую программу на работе. При подсчётах «на бумаге» или в уме эта ошибка тоже актуальна, но человек может округлить правильно почти всегда — так чтобы разности не было, а автомат или компьютер научить во всех случаях пока не удалось... У кого не спрашивал — считают задачу неразрешимой.
На самом деле подобных этому «огрехов» (т.н. «дырок») в математике и логике на компьютере, думаю, намного больше...
Следствие: для абсолютной правильности расчётов или логики на компьютере всё равно нужен человек — компьютеры не гарантируют безошибочности и не спасают от ошибок абсолютно во всех случаях.
Есть целый раздел математики про погрешности вычислений. Там есть законы, что погрешность абсолютная зависит от величины сумм чисел и количества и сложности формул. Как ранжируется-определяется второе (количество и сложность формул), я пока сказать затрудняюсь. Но могу сказать, что в силу разности методов-формул для получения казалось бы одинакового результата оные результаты отличаются на погрешность на практике.
Итого, когда погрешность достигает одного цента/копейки/сотой части единицы валюты объяснить, что результат правильный, чаще всего невозможно. Клиентам бухгалтерских и учётных программ, работающих с деньгами, надо, чтобы суммы схлодились с точностью до цента (деньги дискретны по копейкам, а числа - в идеале - нет)! НО Я УСТАЛ ПОВТОРЯТЬ, ЧТО В АБСОЛЮТЕ ЭТО НЕДОСТИЖИМО ПО ЗАКОНАМ ЛОГИКИ!
Конечно, важно минимизировать появление "несхождения", уменьшить количество случаев при разработке компьютерных программ. Тем не менее, в абсолюте это пока недостижимо.
Закон математики и логики - если переставить операции в формуле местами, результат может начать отличаться. Ну, или если воспользоваться разными методами-формулами при подсчётах.
Остаётся в случаях появления погрешности либо - минимизировать, как сказал выше, либо "прятать" её, либо смириться с ней.
Насчёт "прятать". Когда, как учит компьютерное начальство, в накладной при несходимости на цент/копейку, мы получаем правильную сумму вычитанием от конечной суммы документа (кто делал, понимает о чём речь), этот "цент/копейка" всё равно - не совсем точный результат, погрешность тогда как бы "стреляет"-разбрызгивается вовнутрь всей учётной/бухгалтерской системы, и в системе накпаливается.
Ну, в случае работы с деньгами - ещё ладно. Хуже, когда поезда сходят с рельс, падают воздушные транспортные средства и взрываются атомные реакторы по причине накопления погрешности вычислений в системе...
Есть у меня светлая мысль, чтобы чудо-инженеры подключили нейросеть, чтобы она определяла каждый раз, когда цент/копейку надо так "подгонять" - куда подгонять во всём документе - в плюс или в минус (с учётом анализа всей системы!)... Я сам на такой подвиг неспособен, и, боюсь, до такого чуда использования нейросети по отношению к погрешности мы доразовьёмся ещё нескоро - через несколько десятилетий, а то и столетий!