Сколько будет 1% минус 1%? Калькуляторы смартфонов показывают странное

Автор: Сергей Сергеев. Фото: TrushinBV
11 600
30 октября 2024 в 11:40

В сети разошлась интересная задачка для калькуляторов смартфонов, к ее решению подключились и люди. О чем споры? О том, сколько на самом деле будет, если от 1% отнять 1%. Калькуляторы мобильных устройств выводят результат в 0,0099, что кому-то кажется то ли странным, то ли неверным.

Масла в огонь традиционно подливает легендарный Excel из офисного пакета Microsoft, который уверяет, что 1% минус 1% будет 0,0000.

Кто-то из пользователей X задает закономерный вопрос: «1% от чего?» И ему вторит другой: «Потому что процент в калькуляторе не связан ни с чем. Это и логично. От какого числа процент? Если дать число, то и ответ будет правильным». А третий предлагает объяснение, указывая на возможную проблему с приоритетом операторов: «Типа интерпретируется как ((1%) – 1)%».

Попросили совета и у ChatGPT, который предложил свой вариант:

Попутно выяснилось и то, что не все калькуляторы одинаково справляются с более простыми задачами. Один из пользователей уверяет, что его мобильник Oppo поступает следующим образом:

Дополнено.
Один из читателей 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».

Мы благодарим наших читателей за присланные ответы, в которых они по-разному, но четко рассказали, почему программные калькуляторы ведут себя «странно». Как можно заметить, вопрос кроется в том, как ПО воспринимает знак %, и точке отсчета.

Есть о чем рассказать? Пишите в наш телеграм-бот. Это анонимно и быстро