用十进制计算parseint

时间:2015-01-03 09:26:36

标签: javascript parsing decimal parseint

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

<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?

4 个答案:

答案 0 :(得分:3)

尝试使用parseFloat()代替parseInt()

同样使用<script type="text/javascript">代替<script language="javascript">,这将更加标准和正确

答案 1 :(得分:1)

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

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;
}

答案 2 :(得分:1)

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

答案 3 :(得分:1)

parseFloat旁边,您还可以使用Number将字符串转换为数字值。

&#13;
&#13;
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);
}
&#13;
<input id="plus" type="number" placeholder="type a number"/>

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

<div id="result"></div>
&#13;
&#13;
&#13;