Math Calculator

Free Math Calculator

🧮

Math Calculator

Perform everyday calculations quickly and easily.

 
0
Recent Calculations
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(); })();