File size: 1,944 Bytes
e817952 |
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 |
let outputscreen = document.getElementById('output-screen');
function display(num) {
outputscreen.value += num
}
function calculate() {
try {
outputscreen.value = eval(outputscreen.value)
}
catch (err) {
alert("Invalid")
}
}
function clr() {
outputscreen.value = ''
}
function del() {
outputscreen.value = outputscreen.value.slice(0, -1)
}
function sqrtAction() {
const val = outputscreen.value.trim()
if (val === '') return
try {
// evaluate the current expression first so the user can do e.g. "9+7" then β -> sqrt(16)
const evaluated = eval(val)
if (typeof evaluated !== 'number' || isNaN(evaluated)) {
alert('Invalid')
return
}
if (evaluated < 0) {
alert('Cannot take square root of negative number')
return
}
outputscreen.value = Math.sqrt(evaluated)
} catch (err) {
alert('Invalid')
}
}
function percentAction() {
const val = outputscreen.value.trim()
if (val === '') return
try {
const evaluated = eval(val)
if (typeof evaluated !== 'number' || isNaN(evaluated)) {
alert('Invalid')
return
}
outputscreen.value = evaluated / 100
} catch (err) {
alert('Invalid')
}
}
function squareAction() {
const val = outputscreen.value.trim()
if (val === '') return
try {
const evaluated = eval(val)
if (typeof evaluated !== 'number' || isNaN(evaluated)) {
alert('Invalid')
return
}
outputscreen.value = evaluated * evaluated
} catch (err) {
alert('Invalid')
}
}
function toggleSign() {
const val = outputscreen.value.trim()
if (val === '') return
try {
const evaluated = eval(val)
if (typeof evaluated !== 'number' || isNaN(evaluated)) {
alert('Invalid')
return
}
outputscreen.value = evaluated * -1
} catch (err) {
alert('Invalid')
}
} |