Scientific Calculator

Type the whole expression, not one keystroke at a time. Trig, logs, powers, roots, factorials and constants.

Runs in your browser Free, no sign-up Updated 2026-08-21

Your details

Please enter a valid value.

Angle mode

Fill in the form to see your result.

An expression calculator, not a keypad

Button-by-button calculators force you to hold the intermediate result in your head and give you no way to check what you typed. This one takes the whole expression at once, so (1250 * 0.15) / (3 + sqrt(49)) is a single readable line you can edit, re-run and share as a link.

Supported operators: + - * / ^ % ! with standard PEMDAS precedence and right-associative exponentiation. Parentheses nest to any depth.

Functions and constants

Trigonometrysin cos tan asin acos atan sinh cosh tanh Logarithms & exponentialslog (base 10) ln (natural) log2 exp Roots, rounding, miscsqrt cbrt abs round floor ceil sign Constantspi = 3.14159... e = 2.71828... tau = 2π

Every function requires parentheses: write sin(30), not sin 30. The angle toggle controls whether trigonometric input and inverse-trig output are in degrees or radians — a distinction responsible for an enormous share of wrong answers in engineering and school homework alike.

Examples to try

2^10 → 1024  ·  ln(e^3) → 3  ·  sqrt(2)/2 → 0.7071068  ·  10! → 3628800  ·  log(1000) → 3  ·  cos(60) → 0.5 in degree mode

Mistakes this calculator will not make for you

An expression parser does exactly what you typed, which is a feature until what you typed is not what you meant. The errors below account for most wrong answers in practice.

  • Missing brackets around a denominator. 1/2+3 is 3.5, not 0.2. If a whole expression sits under a division line on paper, it needs brackets here: 1/(2+3).
  • Degrees when you meant radians. sin(1) is 0.0175 in degree mode and 0.8415 in radian mode. Neither is wrong; only one is what you wanted.
  • Percentages typed as percentages. There is no percent operator — % here is the remainder. For 15% of 200, write 0.15*200.
  • Implicit multiplication. 2(3+4) is not valid; write 2*(3+4).
  • Unary minus with powers. -2^2 is −4, following standard convention. For 4, write (-2)^2.

A habit that catches nearly all of these: estimate the answer roughly before pressing calculate. If you expected about 20 and see 3.5, the problem is almost always a bracket.

Order of operations, precisely

The rules this parser applies, from strongest to weakest binding:

  1. Parentheses and function calls
  2. Factorial (!), applied after the value it follows
  3. Exponentiation (^), right-associative
  4. Unary minus
  5. Multiplication, division, modulo
  6. Addition and subtraction

Right-associativity means 2^3^2 is 2(32) = 512, not (23)2 = 64. This matches standard mathematical convention and most programming languages, though some pocket calculators disagree — when in doubt, add brackets.

Everything runs locally in your browser. Nothing you type is sent anywhere, and the calculation is a purpose-built parser rather than a JavaScript eval, so no arbitrary code can run.

Frequently asked questions

How do I switch between degrees and radians?

Use the angle mode toggle. It affects the input to sin, cos and tan and the output of asin, acos and atan. Everything else is unaffected.

What is the difference between log and ln?

log is base 10, so log(1000) = 3. ln is the natural logarithm with base e, so ln(e) = 1. Some maths texts use log to mean the natural logarithm; this calculator follows the more common convention where log is base 10 and log2 is base 2.

Can I use scientific notation?

Yes. Write 1.5e6 for 1,500,000 or 2.3e-4 for 0.00023. Results larger than the display precision are also shown in exponential form in the stats panel.

Why does 2^3^2 give 512?

Exponentiation is right-associative by mathematical convention, so it evaluates as 2^(3^2) = 2^9 = 512. Use brackets — (2^3)^2 — if you want 64.

Is my calculation sent to a server?

No. The expression is parsed and evaluated entirely in your browser by a custom parser. Nothing is transmitted, logged or stored.