2014-03-03 49 views
3

在我的代碼,我有這樣的:ParseFloat混亂

<script language="javascript"> 
    function addNumbers() 
    { 
     var collect = parseFloat(document.getElementById("Collect").value); 
     var current = parseFloat(document.getElementById("Current").value); 
     var Balance = document.getElementById("Bal"); 
     Balance.value = collect + current; 
    } 
</script> 

如果,例如,輸入爲:123.12 + 12.22,餘額爲135.34 但是,如果輸入的是:123.00 + 12.00,平衡是135而不是135.00。

我應該添加什麼來實現第二個輸出樣本?

謝謝。

+3

'toFixed(2)'.... –

+0

@RoyiNamir - 爲什麼不回答? – jfriend00

回答

3

使用ToFixed(2)mdn

(123.00 + 12.00).toFixed(2) //135.00

此外,使用||運營商。

所以:

function addNumbers() 
{ 
    var collect = parseFloat(document.getElementById("Collect").value) ||0; 
    var current = parseFloat(document.getElementById("Current").value) ||0; 
    var Balance = document.getElementById("Bal"); 
    Balance.value = (collect + current).toFixed(2); 
} 

小疑難雜症:

(9.999 +9.999).toFixed(2) //"20.00"

So how would I solve it ? 

簡單:

乘以每1000,然後移動小數點。

+0

+1 Nice Answer!.. –

+0

謝謝你。^_ ^ – LadyWinter