Научный калькулятор
Поддерживает тригонометрические функции, логарифмы, экспоненты, факториалы и многое другое
Что такое научный калькулятор?
Научный калькулятор — это мощный онлайн-инструмент математических вычислений, поддерживающий базовую арифметику и продвинутые научные функции. Он предоставляет тригонометрические функции (sin, cos, tan и их обратные функции), логарифмические функции (log, ln), экспоненциальные функции, операции возведения в степень, факториалы, модули и многие другие математические операции.
Этот калькулятор поддерживает переключение между режимами градусов (DEG) и радиан (RAD), содержит константы π (пи) и e (число Эйлера) и предлагает функции памяти (M+, M-, MR, MC). Все вычисления выполняются локально в браузере для защиты вашей конфиденциальности.
Scientific calculator поддерживает powers, roots, logarithms, trigonometry и выражения со скобками. Важны angle mode, operator precedence, rounding и представление очень больших или малых чисел. Он полезен для обучения, engineering и быстрых sanity checks; для критичных расчетов нужно отдельно проверить formula, units и numerical precision.Как использовать
Как использовать
- Нажимайте кнопки с цифрами и операторами на панели калькулятора для ввода математических выражений
- Нажимайте кнопки научных функций (sin, cos, log) для вставки функций; используйте скобки для задания приоритета операций
- Нажмите кнопку равно или клавишу Enter для вычисления результата; выражение и результат отображаются в верхней части
- Используйте кнопку DEG/RAD для переключения между режимами градусов и радиан, используйте M+/M-/MR/MC для управления памятью
Советы по вычислениям
- Проверяйте режим DEG/RAD перед использованием тригонометрических функций; одно и то же число может давать совершенно разные результаты в градусном и радианном режимах.
- Используйте скобки в многоступенчатых выражениях, чтобы приоритет операций был явным, а не зависел от мысленной группировки.
Применение
Технический принцип
Калькулятор разбирает каждое выражение с помощью алгоритма «сортировочной станции» (shunting-yard), преобразуя инфиксную запись в постфиксную очередь с учётом приоритета операторов и правой ассоциативности для оператора возведения в степень. Скобки задают группировку, унарный минус сворачивается в операнд, а неявное умножение рядом с константами вроде pi или e нормализуется перед постфиксным проходом для исключения неоднозначных токенов. Числовые вычисления выполняются полностью в формате IEEE 754 двойной точности, который даёт примерно 15-17 значащих десятичных цифр и диапазон величин порядка плюс-минус 1.7976931348623157e308. Классические ловушки с плавающей запятой по-прежнему актуальны: 0.1 + 0.2 даёт 0.30000000000000004, поскольку ни один из операндов не имеет конечного двоичного представления, а промежуточные результаты могут терять точность при длинных цепочках вычитания близких значений. Тригонометрические, логарифмические, экспоненциальные и корневые функции делегируются библиотеке JavaScript Math. Переключатель DEG/RAD умножает или делит углы на pi/180 перед вызовом Math.sin, Math.cos или Math.tan, а обратные функции выполняют обратное преобразование над результатом. Факториалы вычисляются итеративным произведением, поэтому 170! находится вблизи потолка двойной точности на уровне ≈ 7.257e+306, а 171! переполняется в Infinity.
- Парсер «сортировочной станции»: преобразует инфиксную запись в постфиксную, учитывает приоритет (^ правоассоциативный, унарный минус сворачивается в операнд)
- IEEE 754 двойная точность: примерно 15-17 значащих цифр, максимум ≈ 1.79e+308, классический случай 0.1 + 0.2 = 0.30000000000000004
- Преобразование DEG/RAD: углы масштабируются на pi/180 перед Math.sin/cos/tan, обратные функции выполняют обратное масштабирование результата
- Граница переполнения факториала: 170! ≈ 7.257e+306, 171! возвращает Infinity в числовом типе JavaScript
- Встроенные константы: Math.PI (3.141592653589793) и Math.E (2.718281828459045) вставляются как токены, а не переразбираются каждый раз
- Трансцендентные функции: Math.log — натуральный логарифм (ln), Math.log10 — по основанию 10, Math.exp(x) вычисляет e^x, Math.pow обрабатывает x^y
- Регистр памяти: M+ / M- накапливают значение в одной числовой переменной, MR возвращает его на ввод как литерал, MC обнуляет
Примеры
Тригонометрия в градусах и радианах
Режим: DEG
sin(30) = 0.5
cos(60) = 0.5
tan(45) = 1
Режим: RAD
sin(pi/4) = 0.70710678
cos(pi) = -1
tan(pi/3) = 1.73205081Логарифмы, экспоненты, e и pi
log(1000) = 3 (логарифм по основанию 10)
ln(e) = 1 (натуральный логарифм)
exp(1) = 2.71828183
e^2 = 7.389056
2^10 = 1024
pi * 2 = 6.28318531Факториалы и комбинаторика
5! = 120
10! = 3628800
170! = 7.257e+306 (максимум до переполнения IEEE-754)
171! = Infinity
C(52,5) через 52!/(5!*47!) = 2598960 (покерные руки)Клавиши памяти: текущая сумма
Шаг 1: введите 125.50, нажмите M+ -> память = 125.50
Шаг 2: введите 89.99, нажмите M+ -> память = 215.49
Шаг 3: введите 12.00, нажмите M- -> память = 203.49
Шаг 4: нажмите MR -> экран = 203.49
Применение: подсчёт чеков без повторного ввода промежуточных суммЧасто задаваемые вопросы
Какие функции поддерживаются?
Стандартная арифметика, скобки, квадратный корень и корни произвольной степени, степени, логарифмы (log — по основанию 10, ln — натуральный), экспоненты, тригонометрические функции (sin/cos/tan и обратные к ним), гиперболические функции, факториалы, остаток от деления, модуль, константы π и e. В некоторых сборках есть статистические помощники (среднее, стандартное отклонение).
Углы в радианах или градусах?
Есть переключатель режима, по умолчанию — градусы. sin(30°) = 0,5 в режиме градусов, sin(30) ≈ −0,988 в режиме радиан. Текущий режим показан на экране — проверьте его перед любыми тригонометрическими расчётами.
Почему 0,1 + 0,2 не равно ровно 0,3?
JavaScript использует числа с плавающей точкой двойной точности по IEEE 754. Числа 0,1 и 0,2 нельзя представить в двоичной системе точно, поэтому 0,1 + 0,2 = 0,30000000000000004. Калькулятор скрывает это, округляя выводимый результат, но запредельной десятичной точности для трансцендентных вычислений здесь нет.
Как ввести длинное выражение?
Введите выражение целиком — парсер учитывает приоритет операторов и скобки. Пишите 2*(3+4)^2, а не 2*3+4^2. Неявное умножение рядом с функциями (например, 2sin(30)) поддерживается не во всех парсерах — вставлять * всегда безопасно.
Поддерживаются ли комплексные числа и символьные вычисления?
Нет. Это численный научный калькулятор. Для комплексных чисел, символьного дифференцирования или решения уравнений используйте Wolfram Alpha, GeoGebra или CAS вроде SymPy.
Расчёты выполняются локально?
Да. Выражение разбирается и вычисляется в вашем браузере. Никаких выгрузок. История (если она есть) хранится в localStorage и удаляется при очистке данных сайта.
Насколько точны научные функции?
Стандартные функции Math в JavaScript дают примерно 15–17 значащих десятичных цифр. Для инженерных задач этого хватает с запасом, но для высокоточной символьной математики — нет. Для произвольной точности используйте библиотеку вроде decimal.js или CAS.