簡體   English   中英

在正確的位置使用toFixed

[英]Using toFixed in the right place

我有一個從輸入字段和下拉列表輸出計算的表格。

除了總數之外,腳本還不錯。 當您鍵入數字並從下拉列表中選擇一個值時,總計在html中將四舍五入到小數點后兩位。

誰能看到為什么會這樣?

表格如下:

<input type="text" name="amount" id="amount" maxlength="6" autocomplete="off"/><span class="paymentalert" style="color:red;"></span>
<br /><br />
<label for="delivery">Delivery:</label>
<select id="delivery" name="delivery">
    <option value="1.50">Fast</option>
    <option value="2.50">Medium</option>
    <option value="3.50">Slow</option>
</select>

JavaScript如下:

function updateCost()
{
    var amount = parseFloat($('#amount').val()).toFixed(2);
    var delivery = parseFloat($('#delivery').val()).toFixed(2);   

    var total = parseFloat(amount) + parseFloat(delivery);
    $("#total").html(total);
    $("#amountdiv").html(amount);
    $("#deliverydiv").html(delivery);

    var fixedrate =  parseFloat(total / 100 * 8.2).toFixed(2);

    var grandtotal = parseFloat(fixedrate) + parseFloat(total);
    $("#grandtotal").html(grandtotal);
    $("#total").html(total);
    $("#fixedrate").html(fixedrate);    

}

$(document).ready(function(){
    $('#amount').change(function(){ updateCost(); });
    $('#delivery').change(function(){ updateCost(); });
    $('#grandtotal').change(function(){ updateCost(); });
}); 

toFixed(2)僅應在輸出它的代碼部分中使用。 在這種情況下,您應該具有類似$("#someID").html(total.toFixed(2)) ,並刪除多余的parseFloat() 像這樣:

function updateCost() {
    var amount = parseFloat(document.getElementById("amount").value),
        delivery = parseFloat(document.getElementById("delivery").value),
        total = amount + delivery,
        fixedrate =  total / 100 * 8.2,
        grandtotal = fixedrate + total;

    document.getElementById("total").innerHTML = total.toFixed(2);
    document.getElementById("amountdiv").innerHTML = amount.toFixed(2);
    document.getElementById("deliverydiv").innerHTML = delivery.toFixed(2);
    document.getElementById("grandtotal").innerHTML = grandtotal.toFixed(2);
    document.getElementById("fixedrate").innerHTML = fixedrate.toFixed(2);
}

$(function(){
    document.getElementById("amount").onchange =
        document.getElementById("delivery").onchange = updateCost;
}); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM