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
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);
|