Type your search query and hit enter:
Math Calculator
Free Math Calculator
🧮
Math Calculator
Perform everyday calculations quickly and easily.
0
MC
MR
M+
M−
C
⌫
%
÷
x²
√x
1/x
×
7
8
9
−
4
5
6
+
1
2
3
=
±
0
.
Recent Calculations
Clear History
No calculations yet.
⌨️ Keyboard supported: numbers, +, −, ×, ÷, Enter, Backspace, Delete and Escape.
'; return; } history.forEach( function(item) { const row = document.createElement( "div" ); row.className = "calc-history-item"; row.innerHTML = item.expression + "
" + formatNumber( item.result ) + "
"; historyContainer.appendChild( row ); } ); } function memoryClear() { memory = 0; } function memoryRecall() { setCurrent( memory ); waitingForOperand = true; } function memoryAdd() { memory += numericCurrent(); } function memorySubtract() { memory -= numericCurrent(); } root .querySelectorAll( "[data-number]" ) .forEach( function(button) { button.addEventListener( "click", function () { inputNumber( this.dataset.number ); } ); } ); root .querySelectorAll( "[data-operator]" ) .forEach( function(button) { button.addEventListener( "click", function () { chooseOperator( this.dataset.operator ); } ); } ); root .querySelectorAll( "[data-action]" ) .forEach( function(button) { button.addEventListener( "click", function () { const action = this.dataset.action; if ( action === "clear" ) { clearCalculator(); } if ( action === "backspace" ) { backspace(); } if ( action === "decimal" ) { inputDecimal(); } if ( action === "equals" ) { equals(); } if ( action === "sign" ) { signChange(); } if ( action === "percent" ) { percent(); } if ( action === "square" ) { square(); } if ( action === "sqrt" ) { squareRoot(); } if ( action === "reciprocal" ) { reciprocal(); } if ( action === "memory-clear" ) { memoryClear(); } if ( action === "memory-recall" ) { memoryRecall(); } if ( action === "memory-add" ) { memoryAdd(); } if ( action === "memory-subtract" ) { memorySubtract(); } } ); } ); clearHistoryButton.addEventListener( "click", function () { history = []; renderHistory(); } ); /* * KEYBOARD SUPPORT */ document.addEventListener( "keydown", function(event) { if ( event.target.matches( "input, textarea, select" ) ) { return; } if ( /^[0-9]$/.test( event.key ) ) { inputNumber( event.key ); return; } if ( event.key === "." ) { inputDecimal(); return; } if ( ["+", "-", "*", "/"].includes( event.key ) ) { chooseOperator( event.key ); return; } if ( event.key === "Enter" || event.key === "=" ) { event.preventDefault(); equals(); return; } if ( event.key === "Backspace" ) { backspace(); return; } if ( event.key === "Delete" || event.key === "Escape" ) { clearCalculator(); return; } if ( event.key === "%" ) { percent(); } } ); updateDisplay(); })();