首页 > 解决方案 > 为什么将两个分数相加,以 0.5 步递增,总框只产生整数而没有半分?

问题描述

两个分数以 0.5 步增加,但总框仅在其中一个分数为 3.5 时才产生整数?任何原因,可以纠正吗?

<body>
<form action="trial.php" method="post" name="trial" target="_top">
<label>Score1<input id = "scorebox1" type="number" value="0" max="20" min="0" step="0.5" size="5" 
maxlength="5" oninput="totalscore()"/></label>
<label>Score 2<input id = "scorebox2" type="number" value="0" max="20" min="0" step="0.5" size="5" 
maxlength="5" oninput="totalscore()"/></label>
<label>Total<input id = "totals" type="number" value="0" step="0.5" size="5" maxlength="5" 
oninput="totalscore()" disabled="disabled"/></label>

</form>

<script>
function totalscore(){  

var totals =
parseInt(document.getElementById('scorebox1').value) +
parseInt(document.getElementById('scorebox2').value);

document.getElementById('totals').value = totals;
}
</script>
</body>

标签: numbersintegerdecimaladdition

解决方案


我认为可能是 parseInt 可能只处理整数。通过将之前的值加倍,然后在“总计”框中显示之前将它们减半,可以得到正确的输出。所以这个对 Javascript 的修改给出了想要的东西。

<script>
 function totalscore(){ 

 var    totals =
 parseInt(document.getElementById('scorebox1').value*2) +
 parseInt(document.getElementById('scorebox2').value*2);

 document.getElementById('totals').value = totals/2;
 }
 </script>

我想如果与金钱打交道,你可以乘以 100,然后除以 100 以使其发挥作用。


推荐阅读