2010-09-21 58 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