Ничто из набранного не покидает устройство
Этот калькулятор работает внутри вашего браузера. Он не отправляет выражение на сервер и не ждёт ответа — вычисление происходит на вашей машине. Он продолжает работать без подключения, и нигде не остаётся записи о том, что вы считали.
Разбор выражений написан с нуля, а не через eval, потому что выполнение строки, введённой пользователем, само по себе является уязвимостью. Он разбивает ввод на лексемы, переводит в постфиксную запись и вычисляет на стеке, отвергая всё, чего не узнаёт.
Цифровые клавиши, операторы, Enter вместо знака равенства, Backspace и Esc для очистки работают с клавиатуры — и на цифровом блоке, и в верхнем ряду.
Клавиша процента ведёт себя по-разному
100 + 10% даёт 110, а 200 × 10% даёт 20. При сложении и вычитании доля берётся от предыдущего числа, при умножении и делении она становится самим значением. Так устроен обычный калькулятор, но это сбивает с толку — для всего, что связано со скидочными ценами, пользуйтесь калькулятором скидок.
Погрешность чисел с плавающей запятой есть в любом компьютере: 0,1 + 0,2 не попадает точно в 0,3. Этот шум убирается на этапе вывода, поэтому вы никогда не увидите 0,30000000000000004.
Очень большие и очень малые числа не могут показать все свои разряды. За пределами примерно пятнадцати значащих цифр точность падает, поэтому для точной работы с большими числами возьмите отдельный инструмент.