-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
93 lines (73 loc) · 2.49 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
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
const display = document.querySelector("#display");
const keys = document.querySelectorAll("[id*=tecla]");
const operators = document.querySelectorAll("[id*=operador]");
let newNumber = true;
let operator;
let previousNumber;
//Atualizar o display
function updateDisplay(numero) {
if(newNumber) {
display.textContent = numero;
newNumber = false;
}else {
display.textContent +=numero;
}
}
//Inserir os números
const insertNumber = (number) => updateDisplay(number);
keys.forEach(function (key) {
key.addEventListener("click", function(event){
insertNumber(event.target.textContent);
});
});
//Selecionar operador
const selectOperator = (event) => {
previousNumber = parseFloat(display.textContent.replace(',', '.'));
operator = event.target.textContent;
newNumber = true;
}
operators.forEach((key) => key.addEventListener("click", selectOperator));
//Realizar cálculo
const calculate = () => {
const actualNumber = parseFloat(display.textContent.replace(',', '.'));
const result = eval(previousNumber + operator + actualNumber);
newNumber = true;
updateDisplay(result.toString().replace('.',','));
}
//Adicionar o evento na tecla igual
const equal = document.querySelector("#igual");
equal.addEventListener('click', calculate);
//Limpar display
const clearDisplay = () => display.textContent = "";
document.querySelector("#limparDisplay").addEventListener("click", clearDisplay);
//Limpar cálculo
const clearCalc = () => {
newNumber = true;
operator = undefined;
previousNumber = undefined;
};
document.querySelector("#limparCalculo").addEventListener("click", clearCalc);
//Remover o último número
const removeLastNumber = () => {
newNumber = true;
updateDisplay(display.textContent.slice(0, - 1))
}
document.querySelector("#apagar").addEventListener("click", removeLastNumber);
//Inverter o sinal
const invertSignal = () => {
display.textContent = (-parseFloat(display.textContent.replace(",", ".")))
}
document.querySelector("#inverter").addEventListener("click", invertSignal);
//Inserir o número decimal
const decimalNumber = () => display.textContent.indexOf(',') !== -1;
const withValue = () => display.textContent.length > 0;
const insertDecimal = () => {
if (!decimalNumber ()) {
if (withValue()) {
updateDisplay(',');
} else {
updateDisplay('0,')
}
}
}
document.querySelector("#decimal").addEventListener("click", insertDecimal);