2010-09-21 59 views
0

我有一点javascript可以动态地将用户在文本字段中输入的内容(通过基本变量)相乘,并将其显示在一个范围内。现在我只是想弄清楚如何让结果的小数位浮动到2个位置,即10.00而不是10 我找到了toFixed函数,但似乎无法正确使用它...我' d感谢任何帮助。由于javascript floating decimal

<input id="quantity"> 
<span id="result"></span> 
<script> 

window.onload = function() { 
    var base = 3; 
    document.getElementById('quantity').onkeyup = function() { 
     if(this.value.length == 0) { 
     document.getElementById('result').innerHTML = ''; 
     return; 
     } 
     var number = parseInt(this.value); 
     if(isNaN(number)) return; 
     document.getElementById('result').innerHTML = number * base; 
    }; 
    document.getElementById('quantity').onkeyup(); 
}; 
+0

你确定你想在这里使用'parseInt'?它会将'4.21'变成'4'。所以用户会被告知4.21 * 3 = 12.00,而不是。 'parseFloat'将产生一个浮点值。 – 2013-03-13 16:08:30

回答

1
window.onload = function() { 
var base = 3; 
document.getElementById('quantity').onkeyup = function() { 
    if(this.value.length == 0) { 
    document.getElementById('result').innerHTML = ''; 
    return; 
    }  
    if(isNaN(this.value)) 
    return; 
    var number = parseFloat(this.value); 
    var result = (number * base).toFixed(2); 
    document.getElementById('result').innerHTML = result; 
    }; 
    document.getElementById('quantity').onkeyup(); 
}; 
+0

正是我需要的!谢谢! – RobHardgood 2010-09-21 08:45:45

+0

首先,你能否把'parseInt'改成'parseFloat',因为提问者不可能想要一个乘以2dp的整数。另外,var result =(number * base).toFixed(2);'(在一个语句中表达)或者有两个变量并且具有'var preciseResult = number * base; var result = preciseResult.toFixed(2);'。 – 2013-03-13 16:07:02

+0

@Phil完成..感谢您指出。 – 2013-03-14 02:58:58