用小数计算parseint

Calculate parseint with decimal

我在另一篇文章中发现了这个:

<script language='javascript'>
function AddInputs()
{
var total = 0;
var coll = document.getElementsByClassName('add')
for ( var i = 0; i<coll.length; i++)
{
    var ele = coll[i];
    total += parseInt(ele.value);
}
var Display = document.getElementById('Display');
Display.innerHTML = total;
}
</script>

有效,但 1.50、1.50 和 1.50 = 3 不准确。我是 JS 的新手(只知道 PHP),但我调查了一下,发现它与 parseInt 有关,因为 1.50 不是整数。有没有什么东西可以代替 parseInt 来计算它,使三个 1.50 实际上等于 4.50?

尝试使用 parseFloat() 而不是 parseInt()

也用<script type="text/javascript">代替<script language="javascript">会更标准更正确

parseInt 会将任何小数转换为整数,因此 parseInt(1.5) 变为 1。这就是为什么 parseInt(1.5) + parseInt(1.5) + parseInt(1.5) = 3。如果你想让它等于 4.5,那么只需将 parseInt 替换为 parseFloat:

function AddInputs()
{
  var total = 0;
  var coll = document.getElementsByClassName('add')
  for ( var i = 0; i<coll.length; i++)
  {
    var ele = coll[i];
    total += parseFloat(ele.value);
  }
  var Display = document.getElementById('Display');
  Display.innerHTML = total;
}

当您在 1.50 上调用 parseInt 时,您将获得该值的整数部分(在本例中为 1)。只需将 parseInt 替换为 parseFloat 即可得到您期望的值。

除了parseFloat你还可以使用Number将字符串转换为数值。

document.querySelector('#add').addEventListener('click', addNumber) 
var total = 0;

function addNumber(e) {
  total += Number(document.querySelector('#plus').value);
  document.querySelector('#result').innerHTML = 'total: '+total.toFixed(2);
}
<input id="plus" type="number" placeholder="type a number"/>

<button id="add">add to total</button>

<div id="result"></div>