-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
119 lines (100 loc) · 3.89 KB
/
script.js
File metadata and controls
119 lines (100 loc) · 3.89 KB
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
110
111
112
113
114
115
116
117
118
119
let numbers = document.querySelectorAll('[data-number]'),
operations = document.querySelectorAll('[data-operation]'),
decemalBtn = document.querySelector('[decimal]'),
clearBtns = document.querySelectorAll('.clear_btn'),
resultBtn = document.querySelector('[data-equals]'),
plusMinusBtn = document.querySelector('[plus-minus]'),
display = document.getElementById('display'),
MemoryCurrentNumber = 0,
MemoryNewNumber = false,
MemoryPendingOperation = '';
for (let i = 0; i < numbers.length; i++) {
let number = numbers[i];
number.addEventListener('click', function (e) {
NumberPress(e.target.textContent);
})
};
for (let i = 0; i < operations.length; i++) {
let operationBtn = operations[i];
operationBtn.addEventListener('click', function (e) {
operation(e.target.textContent);
});
};
for (let i = 0; i < clearBtns.length; i++) {
let clearBtn = clearBtns[i];
clearBtn.addEventListener('click', function (e) {
clear(e.srcElement.id);
});
};
decemalBtn.addEventListener('click', decimal);
plusMinusBtn.addEventListener('click', negativeNumber);
function NumberPress(number) {
if (MemoryNewNumber) {
display.value = number;
MemoryNewNumber = false;
} else {
if (display.value === '0') {
display.value = number;
} else {
display.value += number;
}
};
};
function operation(op) {
let localOperationMemory = display.value;
if (MemoryNewNumber && MemoryPendingOperation !== '=') {
display.value = MemoryCurrentNumber;
} else {
MemoryNewNumber = true;
if (MemoryPendingOperation === '+') {
MemoryCurrentNumber = +parseFloat((MemoryCurrentNumber*100000000+localOperationMemory*100000000)/100000000);
} else if (MemoryPendingOperation === '-') {
MemoryCurrentNumber = +parseFloat((MemoryCurrentNumber*100000000-localOperationMemory*100000000)/100000000);
} else if (MemoryPendingOperation === '*') {
MemoryCurrentNumber = +parseFloat(((MemoryCurrentNumber*100000000)*(localOperationMemory*100000000))/10000000000000000);
} else if (MemoryPendingOperation === '÷') {
MemoryCurrentNumber = +parseFloat((MemoryCurrentNumber*100000000)/(localOperationMemory*100000000));
} else if (MemoryPendingOperation === '√') {
MemoryCurrentNumber **= parseFloat(1/localOperationMemory);
if (MemoryCurrentNumber.toString() == NaN.toString()) {
MemoryCurrentNumber = "Error";
};
} else if (MemoryPendingOperation === '^') {
MemoryCurrentNumber **= parseFloat(localOperationMemory);
} else {
MemoryCurrentNumber= parseFloat(localOperationMemory);
};
display.value = MemoryCurrentNumber;
MemoryPendingOperation = op;
}
console.log('click on button with operation ' + op +'!');
};
function decimal(argument) {
let localDecimalMemory = display.value;
if (MemoryNewNumber) {
localDecimalMemory ='0.';
MemoryNewNumber = false;
} else {
if (localDecimalMemory.indexOf('.') === -1 ) {
localDecimalMemory += '.';
};
};
display.value = localDecimalMemory;
};
function clear(id) {
if (id === 'DEL') {
display.value = '0';
MemoryNewNumber = true;
} else if (id === 'AC') {
display.value = '0';
MemoryNewNumber = true;
MemoryCurrentNumber = 0;
MemoryPendingOperation = '';
}
console.log('click on button with '+ id +'!');
};
function negativeNumber(argument) {
let localNegatuveNumberMemory = display.value;
MemoryCurrentNumber = localNegatuveNumberMemory * (-1);
display.value = MemoryCurrentNumber;
};