🧮 Онлайн-калькулятор — Бесплатно, с историей и поддержкой клавиатуры
Калькулятор Toolio выполняет сложение, вычитание, умножение, деление и вычисление процентов, а также сохраняет в браузере прокручиваемую историю последних 50 результатов — ничего научного, без скобок и без клавиш памяти (M+, M-, MR), потому что эти кнопки отсутствуют в интерфейсе. Внутри используется настоящий парсер с приоритетом операторов, но кнопки на экране подают ему только одну операцию за раз, поэтому нажатие 2 + 3 x 4 = ведет себя как обычный настольный калькулятор и возвращает 20, а не 14, как это было бы при строгом соблюдении порядка арифметических действий. Каждый результат также округляется до 12 значимых цифр перед отображением, поэтому 0.1 + 0.2 показывает чистый 0.3 вместо 0.30000000000000004, как это делает JavaScript.
Калькулятор Toolio — это браузерный четырехфункциональный калькулятор, поддерживающий сложение, вычитание, умножение, деление и вычисление процентов, с историей из 50 записей и полной поддержкой клавиатуры, работающий полностью офлайн.
Приватно по умолчанию. Этот инструмент работает полностью в вашем браузере — ничего из введённого не загружается и не сохраняется, и он работает офлайн.
Об инструменте
Что делает этот калькулятор — а что нет
Сетка кнопок предоставляет AC, backspace, %, деление, умножение, вычитание, сложение, цифры от 0 до 9, десятичную точку и равно — это полный набор функций. Нет квадратного корня, степеней, тригонометрии, скобок и регистров памяти; если вам нужны эти функции, это не тот инструмент. Клавиатура полностью отражает кнопки: цифровые клавиши, +, -, *, /, Enter или = для равно, Backspace, Escape для очистки и % для процентов, все подключено к одному обработчику, который не мешает, когда вы вводите данные в другие поля на странице.
Как работает математика
Порядок выполнения операций работает иначе, чем ожидают многие люди от «калькулятора». Внутри инструмент строит строку выражения и оценивает ее с помощью алгоритма шифрования, который учитывает умножение и деление перед сложением и вычитанием — но интерфейс кнопок передает этому оценщику только одну операцию и два числа за раз. Конкретно: нажмите 2, +, 3, x, 4, = и вот что происходит пошагово — нажатие + сохраняет 2 как ожидаемое левое значение; нажатие 3 устанавливает следующее число; нажатие x заставляет оценить ожидаемое 2 + 3 сразу (потому что прибыл новый оператор, когда результат все еще ожидается), получается 5, которое становится новым левым значением; нажатие 4 устанавливает следующее число; нажатие = оценивает 5 x 4 и показывает 20. Калькулятор, который применял бы полный порядок действий ко всей введенной цепочке, показал бы 14 (2 + 12) вместо этого. Это поведение в стиле цепочки соответствует обычным четырехфункциональным калькуляторам (тем, что встроены в стандартный режим большинства телефонов), а не научным или выражениям на основе калькулятора, и это самый распространенный источник сообщений о «неправильном ответе» для таких инструментов.
Обработка чисел с плавающей точкой — это еще одна область, где видимое число и вычисленное число расходятся. Двоичные числа с плавающей точкой не могут точно представлять большинство десятичных дробей, поэтому JavaScript вычисляет 0.1 + 0.2 как 0.30000000000000004 и 100 x 1.1 как 110.00000000000001. Перед тем, как что-либо достигнет дисплея, инструмент округляет каждый результат до 12 значимых цифр, что тихо возвращает оба этих числа в чистые 0.3 и 110, которые ожидает человек. Однако у этого исправления есть реальные ограничения: 15-значное целое число, например, 999999999999999, округляется до 1000000000000000 по той же 12-значной границе, что превращает точное целое число в другое точное целое число исключительно из-за округления для отображения — не артефакт чисел с плавающей точкой, а настоящая потеря значения, которое вы действительно ввели. И когда величина результата достигает примерно 1e21, форматирование чисел JavaScript переключается на экспоненциальную запись (1e+21), независимо от того, что бы показала 12-значная округлительная система.
Несколько меньших ограничений завершают поведение: деление на ноль вызывает внутреннюю ошибку, и на дисплее отображается локализованное сообщение «Ошибка» вместо Infinity или NaN, очищая ожидаемую операцию, чтобы вы могли начать сначала; ввод чисел ограничен 15 символами при вводе (Backspace все еще работает нормально, уменьшая до одного 0); и проценты работают контекстуально — нажатие % с ожидаемой операцией вычисляет процент от сохраненного левого значения (200, +, 10, % показывает 20, поэтому нажатие = после этого дает 220), а нажатие % само по себе делит текущее отображение на 100.
История вычислений — последние 50, сохранённые в браузере
История сохраняет ваши последние 50 вычислений в localStorage браузера в собственном пространстве имен этого инструмента; 51-й ввод тихо удаляет старейшую запись. Нажатие на любую строку истории возвращает этот результат и его выражение на экран, чтобы вы могли продолжить вычисления, и «Очистить историю» сразу удаляет список с уведомлением, подтверждающим это. Поскольку это localStorage, история привязана к конкретному браузеру на конкретном устройстве — она не синхронизируется между вкладками, открытыми в режиме приватности/инкогнито, между браузерами или между устройствами.
Как пользоваться
- Вводите цифры с помощью клавиатуры или нажимайте кнопки с числами на экране.
- Нажмите +, -, x или / (или соответствующую клавишу клавиатуры), чтобы выбрать операцию; нажатие второй операции сразу оценивает предыдущую.
- Используйте % для процентов: с ожидаемой операцией он вычисляет процент от сохраненного значения (200, +, 10, % затем = дает 220); по отдельности он делит текущее отображение на 100.
- Нажмите Enter или =, чтобы увидеть окончательный результат — он сохраняется в Истории автоматически и округляется до 12 значимых цифр для отображения.
- Нажмите на любую запись в панели Истории, чтобы восстановить этот результат и его выражение, затем продолжите вычисления оттуда.
- Нажмите Escape или нажмите AC, чтобы очистить все, или Backspace, чтобы удалить последнюю введенную цифру.
Частые вопросы
- Действительно ли здесь 0.1 + 0.2 показывает 0.3 или обычную проблему с числами с плавающей точкой?
- Показывает чистый 0.3. JavaScript вычисляет сырую сумму как 0.30000000000000004, потому что двоичные числа с плавающей точкой не могут точно представить 0.1 или 0.2, но этот калькулятор округляет каждый результат до 12 значимых цифр перед отображением, что скрывает этот артефакт для повседневных чисел.
- Если я введу 2 + 3 x 4 =, получу ли я 14 или 20?
- Вы получите 20. Нажатие оператора, когда предыдущая операция все еще ожидается, сразу оценивает эту ожидаемую ступень (2 + 3 = 5 сначала), а затем следующий оператор применяется к этому результату (5 x 4 = 20). Это стандартное поведение для обычных четырехфункциональных калькуляторов, а не ошибка — научный калькулятор, который применяет полный порядок действий к введенной цепочке, дал бы 14 вместо этого.
- Есть ли научный режим, скобки или клавиши памяти (M+/M-/MR)?
- Нет. Это четырехфункциональный калькулятор плюс проценты и история — в интерфейсе нет тригонометрических функций, степеней, квадратных корней, скобок или регистров памяти. Если вам нужны эти функции, этот конкретный инструмент не предназначен для этого.
- Загружает ли он мои вычисления куда-либо?
- Нет. Все вычисления происходят в вашем браузере, а история хранится только в localStorage вашего браузера. Ничто не отправляется на сервер, и инструмент продолжает работать без подключения к интернету вообще.
- Что происходит с очень большими или очень точными числами?
- Результаты округляются до 12 значимых цифр перед отображением, что может тихо изменить точное большое целое число — например, 15-значное число 999999999999999 отображается как 1000000000000000. Как только величина результата достигает примерно 1e21, отображение переключается на экспоненциальную запись (например, 1e+21), независимо от этого округления.
- Что происходит, если я делю на ноль?
- Калькулятор специально обнаруживает это и отображает локализованное сообщение «Ошибка» вместо Infinity или NaN, а затем очищает ожидаемую операцию, чтобы вы могли сразу начать новое вычисление.
- Загружает ли этот инструмент мои данные?
- Нет. Всё выполняется прямо в вашем браузере, поэтому ваши данные никогда не покидают устройство — после загрузки страницы он работает даже офлайн.