JS中的小数位

时间:2009-11-16 09:06:26

标签: javascript javascript-events

我有两个表单输入,显示计算的发票小计和表单总数。

我遇到的问题是它没有显示2位小数。

小计功能

    function calcProdSubTotal() {

    var prodSubTotal = 0;

    $(".row-total-input").each(function(){

        var valString = $(this).val() || 0;

        prodSubTotal += parseInt(valString);

    });

    $("#product-subtotal").val(prodSubTotal);

};

总功能

function calcOrderTotal() {

    var orderTotal = 0;

    var productSubtotal = $("#product-subtotal").val() || 0;
    var productTax = $("#product-tax").val() || 0;

    var orderTotal = parseInt(productSubtotal) + parseInt(productTax);
    var orderTotalNice = "$" + orderTotal;

    $("#order-total").val(orderTotalNice);

};

如何显示两位小数?

3 个答案:

答案 0 :(得分:1)

你可能想看这里: http://www.mredkj.com/javascript/nfbasic2.html

基本上你可以使用toFixed(2),但是你会得到一些舍入。

或者,如果舍入不好,您可以执行parseInt(productTax * 100) / 100

答案 1 :(得分:1)

如果您使用实数,最好使用parseFloat代替parseInt。要格式化数字,您可以使用toFixed功能:

$("#product-subtotal").val(prodSubTotal.toFixed(2));

答案 2 :(得分:1)

更改$("#product-subtotal").val(prodSubTotal);

$("#product-subtotal").val(addDecimals(prodSubTotal));

并更改$("#product-subtotal").val(prodSubTotal);

$("#product-subtotal").val(addDecimals(prodSubTotal));

function addDecimals(a){
     a += "";
     var i=a.indexOf('.');
    if(i<0){
        return a + ".00";
    }
    var j = a.substring(i);
    console.log(j);
    if(j.length<3){
        for(var k=j.length;k<3;k++)
            a+='0';
        return a;
    }   
    if(j.length>3){
        return a.substring(0, i)+j.substring(0,3);
    }
}