⭐ 0

Calculator

Evaluate one arithmetic expression with parentheses, powers, percent, and the listed functions, in degrees or radians.

🔒 Processed entirely in your browser — nothing you enter here is ever uploaded.

Processing... 0%

Result

About this tool

You type an expression and the page parses it. It does not pass the text to JavaScript eval. The operators are addition, subtraction, multiplication, division, remainder, and power. Power uses ^ and is right-associative: the parser raises the left value to whatever the next power expression returns. 2^3^2 is 2^(3^2) = 2^9 = 512, not (2^3)^2 = 64. 2^10 is 1024. Parentheses group the way they do on paper. A percent sign is the remainder operator, value % value, not a 'percent of' button. The live line under the field updates as you type. A finished calculation replaces the field with the formatted result and appends a line of the form expr = result to the history box.

The function names are abs, sqrt, sin, cos, tan, ln, log, round, floor, ceil, min, and max. ln is the natural log and log is log base 10, so log(1000) is 3. min and max take one or more arguments. The constants are pi and e. An unknown name stops with Unknown identifier. A function called with the wrong number of arguments names that function in the error. Trig is the part that depends on the angle switch. The switch opens on degrees. sin, cos, and tan multiply a degree argument by π/180 before the JavaScript trig function. sin(90) is therefore 1. cos(0) is 1. Switch to radians and sin(90) becomes the sine of 90 radians, which is not 1. The last choice is stored under the key scientific-active only for whether the extra key grid is open. The angle unit itself is the hidden field on the page, not that stored flag.

Results go through the shared number formatter. A safe integer is printed as that integer. Anything else is printed from 14 significant digits, so a binary fraction does not spill a long tail of zeros. Division by zero follows ordinary floating-point rules and can surface as Infinity. The history box is a growing list of expr = result lines. Clear wipes the expression, the preview, and that history. There is no memory register, no unit conversion, and no spreadsheet column. A second expression does not see the previous result unless you left that result in the field and kept typing. The keys insert characters into the field. They do not compute by themselves. Keyboard input uses the same parser. The angle buttons set the hidden unit to degrees or radians and the next preview uses that unit. If the expression is empty, equals does nothing. If the parser throws, the preview shows the message and the history line is not written. The whole evaluation stays in the browser.

Example. In the default degree mode, sin(90) is 1. 2^10 is 1024. 2^3^2 is 512, because ^ associates to the right. log(1000) is 3. Each of those is appended as expr = result.

Limit. Percent is the remainder operator. There is no percent-of key, no memory register, and no unit conversion. Trig follows the degree or radian switch, which opens on degrees.

What does sin(90) equal?

With the angle switch on degrees, which is how the page opens, sin(90) is 1 and cos(0) is 1. The degree value is multiplied by π/180 first. Switch to radians and sin(90) is the sine of 90 radians, not 1.

How do powers associate?

The ^ operator is right-associative. 2^3^2 is 2 raised to (3^2), which is 512. It is not 64. 2^10 is 1024. Parentheses still override that order.

Is the percent key 'percent of'?

No. The % operator is remainder, the same operation as JavaScript %. 10%3 is 1. It does not mean 10 percent of 3.

Where does the history go?

Each successful equals appends one line, the expression, a space, an equals sign, and the formatted result. Clear erases that list along with the field. A parse error is shown on the preview line and is not appended.