-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
56 lines (48 loc) · 1.44 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
let firstNumber = "";
let secondNumber = "";
let operator = "";
let display = document.getElementById("display");
function appendNumber(num) {
if (operator === "") {
firstNumber += num;
display.textContent = firstNumber;
} else {
secondNumber += num;
display.textContent = secondNumber;
}
}
function setOperator(op) {
if (firstNumber === "") return;
operator = op;
display.textContent = operator;
}
function calculate() {
if (firstNumber === "" || operator === "" || secondNumber === "") return;
let result = operate(operator, parseFloat(firstNumber), parseFloat(secondNumber));
if (result === "Error") {
display.textContent = "Error";
} else {
display.textContent = Math.round(result * 1000000) / 1000000; // Round to prevent overflow
firstNumber = result;
}
secondNumber = "";
operator = "";
}
function operate(op, num1, num2) {
switch (op) {
case '+': return num1 + num2;
case '-': return num1 - num2;
case '*': return num1 * num2;
case '/': return num2 === 0 ? "Error" : num1 / num2;
default: return "Error";
}
}
function clearDisplay() {
firstNumber = "";
secondNumber = "";
operator = "";
display.textContent = "0";
}
window.addEventListener('DOMContentLoaded', (event) => {
display = document.getElementById("display");
});