Как я могу получить цену оформления заказа с точностью до копейки, используя Javascript?
Как я могу получить цену оформления заказа с точностью до копейки, используя Javascript?
Прямо сейчас, после того, как я пробовал все пробные версии и т. Д. Я пытался.. Я поднялся на 1,5 цента слишком высоко, используя 15 продуктов / цен для тестирования.
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);
}
3 ответа
var newCartTotal = (cartTotal - pricediscount).toFixed(2)
это даст вам значение, но это будет строка. Если вам нужно, чтобы оно оставалось числовым, используйте:
var newCartTotal = ((cartTotal - pricediscount * 100) << 0) / 100;
Измените свой код на:
priceDiscount = parseFloat( (subtotal * itemDiscountPercent).toFixed(2) );
а также:
newCartTotal = parseFloat( (cartTotal - priceDiscount).toFixed(2) );
Вам необходимо округлить скидку для каждой позиции: priceDiscount = round_to_hundredth(subtotal * itemDiscountPercent)
Обратите внимание, что этот результат может не совпадать с результатом, который вы получите, если добавите необоснованные результаты, а затем округлите сумму. Однако именно так обычно работают счета-фактуры, когда они рассчитываются вручную (тем более что каждый товар может иметь различный процент скидки, поэтому скидка рассчитывается для каждой строки).
Я думаю, что вы пропустили строку, говорящую discountAmount += priceDiscount
,