Почему при сложении двух баллов, которые увеличиваются на go за 0,5 шага, итоговое поле выдает только целые числа без половинок? - PullRequest
0 голосов
/ 21 апреля 2020

Два балла go вверх за 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>

1 Ответ

0 голосов
/ 23 апреля 2020

Я думаю, что это может быть 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, чтобы заставить их работать.

...