如何使用Javascript使购物车结帐价格精确到一分钱?

如何使用Javascript使购物车结帐价格精确到一分钱?,javascript,math,rounding,currency,cart,Javascript,Math,Rounding,Currency,Cart,如何使用Javascript使购物车结帐价格精确到一分钱 现在在完成了所有的审判之后,我试着。。我用高15个产品/价格来测试,价格上涨了1.5美分 for (var i = 0; i < Cookie.products.length; i++) { boolActive = Cookie.products[i].og_active; if (boolActive) {

如何使用Javascript使购物车结帐价格精确到一分钱

现在在完成了所有的审判之后,我试着。。我用高15个产品/价格来测试,价格上涨了1.5美分

            for (var i = 0; i < Cookie.products.length; i++) {
            boolActive = Cookie.products[i].og_active;              
            if (boolActive)
            {
                itemPrice = Cookie.products[i].price;
                itemQty = Cookie.products[i].quantity;
                itemDiscountPercent = Cookie.products[i].discount_percent;

                subtotal = itemPrice * itemQty;
                priceDiscount = (subtotal * itemDiscountPercent);
                                    discountAmount += priceDiscount;
            }
        }
        if (!isNaN(discountAmount))
        { 
            var newCartTotal = (cartTotal - priceDiscount);
            alert("New Cart Total: " + newCartTotal);
        }
for(var i=0;i
您需要对每一行项目的折扣进行四舍五入:
价格折扣=四舍五入到百分之一百(小计*项目折扣百分比)

请注意,如果将未舍入的结果相加,然后对总和进行四舍五入,则此结果可能与您得到的结果不一致。但是,手工计算发票时通常采用这种方式(特别是因为每个项目都有不同的折扣百分比,所以折扣是针对每一行计算的)


我想你漏掉了一行,上面写着:折扣金额+=价格折扣

你需要对每一行商品的折扣进行四舍五入:
价格折扣=四舍五入到百分之一百(小计*项目折扣百分比)

var newCartTotal = (cartTotal - pricediscount).toFixed(2)
请注意,如果将未舍入的结果相加,然后对总和进行四舍五入,则此结果可能与您得到的结果不一致。但是,手工计算发票时通常采用这种方式(特别是因为每个项目都有不同的折扣百分比,所以折扣是针对每一行计算的)

我想你漏掉了一行字,上面写着折扣金额+=价格折扣

var newCartTotal = (cartTotal - pricediscount).toFixed(2)
这将为您提供值,但它将是一个字符串。如果需要保持数字,请使用:

var newCartTotal = ((cartTotal - pricediscount * 100) << 0) / 100;
var newcartotal=((cartotal-价格折扣*100)
这将为您提供值,但它将是一个字符串。如果您需要它保持数字,请使用:

var newCartTotal = ((cartTotal - pricediscount * 100) << 0) / 100;
var newcartotal=((cartotal-price折扣*100)将您的代码修改为:

priceDiscount = parseFloat( (subtotal * itemDiscountPercent).toFixed(2) );
以及:

将代码修改为:

priceDiscount = parseFloat( (subtotal * itemDiscountPercent).toFixed(2) );
以及: