2013-10-31 53 views
2

哪有我做了一個腳本來乘以2個輸入和結果我的問題是: 「我該怎麼做才能把2位小數每個輸入如何將輸入轉換爲2位小數位?

soles * cost  = subtotal 
subtotal + dolares = total 

這是我查看HTML

<label>Sum Soles :</label> 
    <input id="soles" value="2233.3234333" /> 

    <label>Sum Dolars :</label> 
    <input id="dolars" value="3244.3566" /> 

    <br/><br/> 
    <label>Cost of Dolar</label> 
    <input type="text" id="cost" maxlength="5" onchange="doMath();" /> 

    <label>Total Soles to Dolars</label> 
    <input id="subtotal" readonly="readonly" /> 

    <br/><br/> 
    <label>SUM TOTAL</label> 
    <input id="total" readonly="readonly" /> 

這是我的腳本

<script type="text/javascript"> 
function doMath() 
{ 
    // Capture the entered values of two input boxes 
    var soles = document.getElementById('soles').value; 
    var cost = document.getElementById('cost').value; 
    var dolares=document.getElementById('dolars').value; 

    // Add them together and display 
    var subtotal = parseFloat(soles) * parseFloat(cost); 
    document.getElementById('subtotal').value = subtotal; 

    var total = parseFloat(subtotal) + parseFloat(dolars); 
    document.getElementById('total').value = total; 
} 
</script> 

我期望的那樣結果

Sum Soles : 2233.32 
Sum Dolars 3244.36 
Cost : 1.2 
Total Soles to dolars = 2679,98 
Total :5924,34 

請有人可以幫助我呢?

我會很高興幫助

+0

可能重複[JavaScript:格式化數字,精確到兩位小數](http://stackoverflow.com/questions/1726630/javascript-formatting-number-with-exactly-two-decimals) – Ryan

+0

它不是重複的,我創建編輯它現在 –

+0

Carlios - 我編輯你的問題,所以這是正確的英語。你改回來了。我不打算編輯戰爭,但最好不要寫所有大寫的問題,現在你的問題是不正確的英語。 – Joe

回答

2

可以使用.toFixed(2)或數學Math.floor(number * 100)/100 - >它們是可以互換的,但.toFixed()返回一個字符串,所以記住這一點

function doMath() 
{ 
    // Capture the entered values of two input boxes 
    var soles = document.getElementById('soles').value; 
    var costo = document.getElementById('costo').value; 
    var dolares=document.getElementById('dolares').value; 

    // Add them together and display 
    var subtotal = Math.floor(parseFloat(soles) * 100)/100 * Math.floor(parseFloat(costo) * 100)/100; 
    document.getElementById('subtotal').value = subtotal.toFixed(2); 

    var total = parseFloat(subtotal) + parseFloat(dolares); 
    document.getElementById('total').value = total; 
} 
+0

我試了你的代碼,並清楚地告訴你。 感謝1分:)並感謝您的幫助 –

+0

我有另一個問題,我怎麼能在鞋底和dolares上使用2位小數? –

+0

您可以使用相同的代碼,但將其應用於值。或者你指的是在用戶輸入時輸入字段本身至多有2位小數? – Stefan

2

可以使用number.toFixed(2)原型。

編輯:這將返回1.20爲Costo而不是1.2。如果你想回合到2位小數,你可以使用Math.round方法tak3r provided

這裏有一個原型,做同樣的事情:

Number.prototype.roundToDecimals = function(decimals) { 
    decimals = decimals || 0; 
    var pow = Math.pow(10, decimals); 
    return Math.round(this * pow)/pow; 
}; 

> (1.234567).roundToDecimals(2); 
1.23 

> (1.2).roundToDecimals(2); 
1.2 
+0

感謝您的建議。 :) –

相關問題