forked from Kritika30032002/Calculator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
51 lines (49 loc) · 1.44 KB
/
index.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
let screen = document.getElementById('screen');
buttons = document.querySelectorAll('button');
let screenValue = '';
let actualValue = '';
function evaluate(str){
if(str.includes("ln")){
var parts = str.split("ln",2);
str=parts[0]+Math.log(eval(parts[1]));
}
else if(str.includes("log")){
var parts = str.split("log",2);
str=parts[0]+(Math.log(eval(parts[1]))/Math.log(10));
}
else if(str.includes("√")){
var parts = str.split("√",2);
str=parts[0]+Math.sqrt(eval(parts[1]));
}
str=eval(str);
return str;
}
for (item of buttons) {
item.addEventListener('click', (e) => {
buttonText = e.target.innerText;
console.log('Button text is ', buttonText);
if (buttonText == 'X') {
screenValue+=buttonText;
actualValue += "*";
screen.value = screenValue;
}
else if(buttonText == '^') {
screenValue+=buttonText;
actualValue += "**";
screen.value = screenValue;
}
else if (buttonText == 'C') {
screenValue = "";
actualValue = "";
screen.value = screenValue;
}
else if (buttonText == '=') {
screen.value = evaluate(actualValue);
}
else {
actualValue += buttonText;
screenValue += buttonText;
screen.value = screenValue;
}
})
}