У меня есть динамическая таблица цен, в которой стоимость за единицу товара изменяется в зависимости от количества выбранных единиц.
см. Изображение таблицы цен Excel
Формула берет первый элемент и умножается на количество, но остальная часть вычисления работает путем добавления числа или цены элементов на основе количества
(1 * 17 = 17),
(17 + 17 = 24),
(17 + 17 + 17 = 51)
У меня была другая формула, написанная на JavaScript, но она не рассчитывается одинаково, поэтому я получаю разные значения.
let itemPrice:number;
let tier1 = 17;
let tier2 = 15;
let tier3 = 13;
let tier4 = 11;
let tier5 = 9;
let tier6 = 7;
let tier7 = 6;
selectDevices(e: MatSliderChange) {
this.selectedCount.Items = e.value;
this.itemPrice = this._getItemPrice(e.value);
this.invoice.itemPriceTotal =
this.selectedCount.Items * this.itemPrice;
}
private _getItemPrice(items?: number) {
let itemPrice = this.tier1;
if (devices < 5) {
itemPrice = this.tier1;
}
if (devices > 4 && devices < 9) {
itemPrice = this.tier2;
}
if (devices > 8 && devices < 13) {
itemPrice = this.tier3;
}
if (devices > 12 && devices < 17) {
itemPrice = this.tier4;
}
if (devices > 16 && devices < 21) {
itemPrice = this.tier5;
}
if (devices > 20 && devices < 25) {
itemPrice = this.tier6;
}
if (devices > 24) {
itemPrice = this.tier7;
}
return itemPrice;
}
Когда ползунок изменяет цену, вычисляется с использованием вышеуказанных функций, но результат отличается, потому что он только умножает количество на цену, но ему нужно вычислить первые 4 по цене уровня 1, следующие 4 по цене уровня 2 + предыдущий 4 по цене 1 уровня. Надеюсь, что это имеет смысл.