You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
1.8 KiB

let display = document.getElementById('display');
let currentInput = '';
let previousInput = '';
let operation = null;
function appendNumber(number) {
currentInput += number;
display.textContent = currentInput;
}
function appendDecimal(dot) {
if (!currentInput.includes(dot)) {
currentInput += dot;
display.textContent = currentInput;
}
}
function chooseOperation(op) {
if (currentInput === '') return;
if (previousInput !== '') {
calculateResult();
}
operation = op;
previousInput = parseFloat(currentInput);
currentInput = '';
}
function clearDisplay(clear) {
if (clear === 'C') {
display.textContent = '0';
currentInput = '';
previousInput = '';
operation = null;
} else if (clear === 'AC') {
// Full reset (not implemented in basic example)
}
}
function calculateResult(equals) {
let result;
const prev = previousInput;
const curr = parseFloat(currentInput);
if (isNaN(prev) || isNaN(curr)) return;
switch (operation) {
case '+':
result = prev + curr;
break;
case '-':
result = prev - curr;
break;
case '*':
result = prev * curr;
break;
case '/':
result = prev / curr;
break;
case '%':
result = prev % curr;
break;
default:
return;
}
display.textContent = result;
previousInput = result;
currentInput = '';
operation = null;
}
// Bind equals button to calculate result
document.querySelector('button[onclick="calculateResult(\'=\')"]').addEventListener('click', calculateResult);