В "Бюджете 2.0" давно был свой простенький калькулятор, который автор приложения использует ровно один раз в месяц при планировании нового финансового периода, чтобы высчитать, сколько нужно доложить денег в копилки с выделенными бюджетами под различные категории расходов.
Честно говоря, функция расчёта процентов в этом калькуляторе была прикручена "для галочки" и чтобы заполнить место в макете, и работала очень просто: высчитывала один процент от текущей суммы в поле для ввода. Но пользователи просили расширить функционал расчёта процентов так, как это сделано в других калькуляторах. Вероятно, чтобы высчитывать нужные суммы при распределении накопленных денег по копилкам.
Представляется, что если программиста попросить написать калькулятор процентов для общей формулы A [+| - | x | ÷ ] B % = ?, то в его сознании возникнет простейший код из четырёх веток, которые будет объединять общая логика, а различаться эти ветки будут только арифметической операцией, применённой к операндам.
Небольшой практический пример с пояснениями:
100 + 50 % = 150 (к сотне прибавили 50 процентов от сотни)
100 - 50 % = 50 (из сотни вычли 50 процентов от сотни)
100 x 50 % = 5000 (сотню умножили на 50 процентов от сотни)
100 ÷ 50 % = 2 (сотню разделили на 50 процентов от сотни)
Логично, понятно и последовательно, так? Не так!
Заговор производителей калькуляторов угрожает программистам по всему миру
Первый же специально обученный тестировщик (жена) разнесла решение в пух и прах, пояснив и показав на практике, что для последних двух случаев из примера калькуляторы считают результат иначе, чем для первых двух! И на самом деле логика должна выглядеть так:
100 + 50 % = 150 (к сотне прибавили 50 процентов от сотни)
100 - 50 % = 50 (из сотни вычли 50 процентов от сотни)
100 x 50 % = 50 (сотню умножили на 50 процентов от единицы)
100 ÷ 50 % = 200 (сотню разделили на 50 процентов от единицы)
Кто это придумал? Кому это нужно? Почему об этом не рассказывали в школе? Если кому-то рассказывали, отпишитесь, пожалуйста, в комментариях. Пока же ситуация выглядит так, что в мире есть тайное бухгалтерское лобби, находящееся в сговоре с производителями и разработчиками калькуляторов по всему миру, чьей целью является вносить нелогичные изменения в калькуляторы с целью снизить конкуренцию на рынке труда бухгалтеров, искусственно завышая сложность логики расчётов.
Короче, калькулятор процентов мы починили. В обновлении 1.0.6.