如何使用Javascript将购物车结帐价格精确到便士?
现在拿出所有试用版.rounds等后我正在尝试..我用1.5高的产品/价格进行测试,价格上涨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);
}
答案 0 :(得分:1)
var newCartTotal = (cartTotal - pricediscount).toFixed(2)
将为您提供值,但它将是一个字符串。如果您需要它保持数字,请使用:
var newCartTotal = ((cartTotal - pricediscount * 100) << 0) / 100;
答案 1 :(得分:0)
您需要为每个订单项舍入折扣:priceDiscount = round_to_hundredth(subtotal * itemDiscountPercent)
请注意,如果您添加未结果的结果然后舍入总和,则此结果可能与您获得的结果不一致。但是,这是发票通常在手工计算时的工作方式(特别是因为每个项目可以有不同的折扣百分比,因此为每一行计算折扣)。
我认为你遗漏了一句话discountAmount += priceDiscount
。
答案 2 :(得分:0)
将您的代码修改为:
priceDiscount = parseFloat( (subtotal * itemDiscountPercent).toFixed(2) );
和
newCartTotal = parseFloat( (cartTotal - priceDiscount).toFixed(2) );