Javascript 累积平均成绩计算器
我正在创建一个累积GPA计算器,但我无法让计算器输出任何值。我的代码或计算有什么错误吗Javascript 累积平均成绩计算器,javascript,calculator,Javascript,Calculator,我正在创建一个累积GPA计算器,但我无法让计算器输出任何值。我的代码或计算有什么错误吗 <div id="Cumulative GPA" class="tabcontent"> <p2>Cumulative GPA <b>before</b> this semester:</p2> <input type="number" id="oldcumulativegpa"> <br />
<div id="Cumulative GPA" class="tabcontent">
<p2>Cumulative GPA <b>before</b> this semester:</p2>
<input type="number" id="oldcumulativegpa">
<br />
<p2><b>Number of semesters</b> your Old Cumulative GPA was calculated with:</p2>
<input type="number" id="numberofsemesters">
<br />
<p2>Your GPA <b>this semester</b>:</p2>
<input type="number" id="currentsemestergpa">
<script>
document.getElementById("oldcumulativegpa").onkeydown = function() {myJsFunction()};
function myJsFunction() {
var oldcumulativegpa = document.getElementById('oldcumulativegpa').value;
var currentsemestergpa = document.getElementById('currentsemestergpa').value;
var numberofsemesters = document.getElementById('numberofsemesters').value;
newcumulativegpa = (oldcumulativegpa*numberofsemesters + currentsemestergpa)/(numberofsemesters + 1);
}
</script>
<p2>Your <b>New Cumulative GPA:</p2>
<p id="newcumulativegpa"></p>
</div>
本学期之前的累积GPA:
使用以下公式计算您的旧累积GPA的学期数:
你这学期的平均成绩:
document.getElementById(“oldcumulativegpa”).onkeydown=function(){myJsFunction()};
函数myJsFunction(){
var oldcumativegpa=document.getElementById('oldcumativegpa')。值;
var currentsemestergpa=document.getElementById('currentsemestergpa')。值;
var numberofsemests=document.getElementById('numberofsemests').value;
新累计EGPA=(旧累计EGPA*学期数+当前学期数)/(学期数+1);
}
你的新累积平均成绩:
您有几个问题:
#newcumulativegpa
元素,而是创建一个全局变量newcumulativegpa
并分配给它
标记这样的东西#oldCumulativeEGPA
元素中的一个键时,您才能运行您的函数
的值
属性是一个字符串
。您需要将其转换为一个编号
#newcumulativegpa
元素在运行脚本时不存在”的意思
我明确地指出这一点,因为下面的可运行脚本无法很好地演示它
constoldcumerativegpaelement=document.getElementById(“oldcumerativegpa”);
const currentSemesterGPAEElement=document.getElementById(“currentsemestergpa”);
const numberofsemestelement=document.getElementById(“numberofsemests”);
const newCumulativeGPAElement=document.getElementById('newcumulativegpa');
函数updateGPA(){
const oldCumGPA=parseFloat(oldcumativegpaelement.value,10);
const numSemesters=parseFloat(numberofsemestelement.value,10);
const CURRSEMETERGPA=parseFloat(currentSEMETERGPAEElement.value,10);
/*
*测试用例:
*4,3,3应该显示3.75
*/
常数newCumulativeGPA=(
(oldCumGPA*nummesters)+currenmesterGPa
)/(单位/秒+1);
newCumulativeGPAElement.innerHTML=newCumulativeGPA;
}
[
OldCumulativegPaeElement,
CurrentSemestergpaeElement,
半酯化数
].forEach(el=>el.addEventListener(“更改”,updateGPA));
updateGPA()
-
本学期之前的累积GPA:
-
使用以下公式计算您的旧累积GPA的学期数:
-
你这学期的平均成绩:
你的新累积平均成绩:
0
MyJ函数似乎根据输入中提供的信息来计算个人的GPA。这是合乎逻辑的,因为你把你以前的平均成绩乘以你在学校的时间,再加上你当前学期/季度的平均成绩除以这个季度后你的总时间
问题是,我认为,你实际上没有显示结果。您所要做的就是创建一个新的标记,其中包含您在函数中声明的变量ID 您希望“myJsFunction”中的最后一条语句具体做什么?为什么?请注意,您的意思是
,而不是
?另外,我的css中定义了新的累积GPA labelp2,您缺少了一个结束符。
。感谢您确认计算结果。由于某些原因,此项上的代码无法正确计算。例如,如果你在输入中输入4、3、3,新的累积GPA应该是3.75,但它显示3.9677…@Jon好吧,我使用了你的数学函数。如果你在纸上使用这个公式,数学是正确的。代码中一定缺少什么?@Jon忘记在输入值上使用parseFloat()
。请参阅我的编辑。数学部分不起作用,因为您的“currentsemestergpa”没有得到@Jon的值。在那里插入一个5,然后插入一个0来测试我的理论。