-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcalculator.js
109 lines (95 loc) · 3.09 KB
/
calculator.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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
const buttonValues = [
"AC", "+/-", "%", "÷",
"7", "8", "9", "×",
"4", "5", "6", "-",
"1", "2", "3", "+",
"0", ".", "="
];
const rightSymbols = ["÷", "×", "-", "+", "="];
const topSymbols = ["AC", "+/-", "%"];
const display = document.getElementById("display");
let A = 0;
let operator = null;
let B = null;
function clearAll() {
A = 0;
operator = null;
B = null;
}
for (let i = 0; i < buttonValues.length; i++) {
let value = buttonValues[i];
let button = document.createElement("button");
button.innerText = value;
if (value == "0") {
button.style.width = "180px";
button.style.gridColumn = "span 2";
}
else if (rightSymbols.includes(value)) {
button.style.backgroundColor = "#FF9500";
}
else if (topSymbols.includes(value)) {
button.style.backgroundColor = "#D4D4D2";
button.style.color = "#1C1C1C";
}
button.addEventListener("click", function() {
if (rightSymbols.includes(value)) {
if (value == "=") {
if (A != null) {
B = display.value;
let numA = Number(A);
let numB = Number(B);
if (operator == "÷") {
display.value = numA/numB;
}
else if (operator == "×") {
display.value = numA*numB;
}
else if (operator == "-") {
display.value = numA-numB;
}
else if (operator == "+") {
display.value = numA+numB;
}
clearAll();
}
}
else {
operator = value;
A = display.value;
display.value = "";
}
}
else if (topSymbols.includes(value)) {
if (value == "AC") {
clearAll();
display.value = "";
}
else if (value == "+/-") {
if (display.value != "" && display.value != "0") {
if (display.value[0] == "-") {
display.value = display.value.slice(1);
} else {
display.value = "-" + display.value;
}
}
}
else if (value == "%") {
display.value = Number(display.value) / 100;
}
}
else {
if (value == ".") {
if (display.value != "" && !display.value.includes(value)) {
display.value += value;
}
}
else if (display.value == "0") {
display.value = value;
}
else {
display.value += value;
}
}
});
document.getElementById("buttons").appendChild(button);
}