I wrote this small script that would calculate a students GPA. I decided to test it midway and it appears as if the code messes up.
<!DOCTYPE html>
<html>
<head>
<title>GPA Calculator</title>
</head>
<body>
<input type="text" id="varA">
<input type="text" id="varB">
<input type="text" id="varC">
<input type="button" value="Add" onclick="addNumbers('varA', 'varB', 'varC')"></input>
<h1 id="testResult"></h1>
<script>
function addNumbers(elem1, elem2, elem3) {
var a = document.getElementById(elem1).value;
if (a == 90){
a = 4
}
var b = document.getElementById(elem2).value;
var c = Number(a) + Number(b);
c = c / 8
document.getElementById("testResult").innerHTML = c;
}
</script>
</body>
</html>
For example if I add 2 and 2 and 12 instead of displaying 2 it displays 1.75 which is weird.
Advertisement
Answer
You forget to add the third values so you get wrong results.
If you inputs 2,2,12 result is 0.5, because of (2+2)/8 = 4/8 = 0.5.
For 2,12,2 or 12,2,2 result is 1,75 because of (2+12)/8 = 14/8 = 1,75
This should give you the desired result.
<html>
<head>
<title>GPA Calculator</title>
</head>
<body>
<input type="text" id="varA">
<input type="text" id="varB">
<input type="text" id="varC">
<input type="button" value="Add" onclick="addNumbers('varA', 'varB', 'varC')">
<h1 id="testResult"></h1>
<script>
function addNumbers(elem1, elem2, elem3) {
var a = document.getElementById(elem1).value;
if (a == 90){
a = 4
}
var b = document.getElementById(elem2).value;
var c = document.getElementById(elem3).value;
let sum = Number(a) + Number(b) + Number(c);
let result = sum / 8;
document.getElementById("testResult").innerHTML = result;
}
</script>
</body>
</html>