-
Notifications
You must be signed in to change notification settings - Fork 0
/
jscalculator.js
128 lines (124 loc) · 2.61 KB
/
jscalculator.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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
$(document).ready(function() {
var problem = [];
var number = '';
var br = false;
function numfill(n) {
if (br) {
$('#answer').empty();
}
number += n;
if (number.length>10){
$('#answer').text('RANGE ERROR');
} else {
$('#answer').text(number);
}
br = false;
}
function opfill(op) {
if (problem.length > 0) {
eval();
}
problem.push(op);
problem.push(Number(number));
number = '';
br = true;
}
function eval() {
problem.push(Number(number));
if (problem[0] === 'plus') {
var answer = problem[1] + problem[2];
}
if (problem[0] === 'minus') {
var answer = problem[1] - problem[2];
}
if (problem[0] === 'times') {
var answer = problem[1] * problem[2];
}
if (problem[0] === 'divide') {
var answer = problem[1] / problem[2];
}
if (answer > 999999999999){
$('#answer').text(answer.toExponential(6));
} else if (answer < 0.0000000001){
$('#answer').text(answer.toExponential(6));
} else if (answer.toString().length > 12) {
if (Number.isInteger(answer)) {
} else {
answer = answer.toFixed(6);
$('#answer').text(answer);
}
} else {
$('#answer').text(answer);
}
problem = [];
number = answer;
br = true;
}
$('#one').click(function() {
numfill('1');
});
$('#two').click(function() {
numfill('2');
});
$('#three').click(function() {
numfill('3');
});
$('#four').click(function() {
numfill('4');
});
$('#five').click(function() {
numfill('5');
});
$('#six').click(function() {
numfill('6');
});
$('#seven').click(function() {
numfill('7');
});
$('#eight').click(function() {
numfill('8');
});
$('#nine').click(function() {
numfill('9');
});
$('#zero').click(function() {
numfill('0');
});
$('#point').click(function() {
numfill('.');
});
$('#plus').click(function() {
opfill('plus');
});
$('#percent').click(function() {
number = number / 100;
$('#answer').text(number);
});
$('#minus').click(function() {
opfill('minus');
});
$('#times').click(function() {
opfill('times');
});
$('#divide').click(function() {
opfill('divide');
});
$('#equals').click(function() {
eval();
});
$('#clear').click(function() {
problem = [];
number = '';
$('#answer').empty();
});
$('#sign').click(function() {
var dig = number.split('');
if (dig[0] === '-') {
dig.shift();
number = dig.join('');
} else {
number = '-' + number;
}
$('#answer').text(number);
});
});