В сети разошлась интересная задачка для калькуляторов смартфонов, к ее решению подключились и люди. О чем споры? О том, сколько на самом деле будет, если от 1% отнять 1%. Калькуляторы мобильных устройств выводят результат в 0,0099, что кому-то кажется то ли странным, то ли неверным.
Обнаружен новый повод для холиваров ) pic.twitter.com/1nMHG3mkUg
— Борис Трушин (@TrushinBV) October 29, 2024
Масла в огонь традиционно подливает легендарный Excel из офисного пакета Microsoft, который уверяет, что 1% минус 1% будет 0,0000.
Кто-то из пользователей X задает закономерный вопрос: «1% от чего?» И ему вторит другой: «Потому что процент в калькуляторе не связан ни с чем. Это и логично. От какого числа процент? Если дать число, то и ответ будет правильным». А третий предлагает объяснение, указывая на возможную проблему с приоритетом операторов: «Типа интерпретируется как ((1%) – 1)%».
Попросили совета и у ChatGPT, который предложил свой вариант:
Chat Gpt объяснил) pic.twitter.com/Ns0P3AKVep
— Arif (@arifshikhli) October 29, 2024
Попутно выяснилось и то, что не все калькуляторы одинаково справляются с более простыми задачами. Один из пользователей уверяет, что его мобильник Oppo поступает следующим образом:
Вдогонку калькулятор ОРРО вам pic.twitter.com/isV1fHeI17
— Alex Pacific (@lxpcfc) October 29, 2024
Дополнено.
Один из читателей Onlíner поделился размышлениями на тему того, почему подсчеты выглядят именно так.
«Так как данные неполные (нет, от чего считать процент), то калькулятор и Excel воспринимают выражение как разницу. Excel потому выводит 0%, а калькулятор переводит в число, так как не умеет выводить проценты в ответе:
1% – 1% = (1 – 1)% = 0% = 0.
Поэтому и 2% – 1% = (2 – 1)% = 1% (Excel) = 0,01 (калькулятор)».
Другой наш читатель предложил следующее.
«Стандартные функции любого калькулятора: при нажатии кнопки % после числа введенное число преобразуется в десятичную дробь. При этом действие с % всегда происходит сразу же при нажатии кнопки „%“.
Так, в процессе ввода выражения 1% – 1% расчет процентов производится дважды, и конечный ответ считается уже из выражения 0,01 – 0,0001 = 0,0099.
В первом действии при вводе „1“ и нажатии кнопки „%“ калькулятор преобразует введенное число „1“ в десятичную дробь 0,01. А затем, при последующем введении „–1%“, ввиду наличия знака „–“ происходит расчет и вычитание 1% уже от первого числа 0,01, т. е. 0,01 – 1% = 0,01 – 0,0001 = 0,0099».
Мы благодарим наших читателей за присланные ответы, в которых они по-разному, но четко рассказали, почему программные калькуляторы ведут себя «странно». Как можно заметить, вопрос кроется в том, как ПО воспринимает знак %, и точке отсчета.
Есть о чем рассказать? Пишите в наш телеграм-бот. Это анонимно и быстро