我在另一篇文章中发现了这个:
<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?
答案 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
将字符串转换为数字值。
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;