Я пытаюсь получить итоговое значение из каждой ячейки tableView
, чтобы затем добавить к итоговому ярлыку.Поскольку каждая ячейка может иметь различное количество, а также цену, я использую Array
s как для количества, так и для продуктов base price.
Я следил за этим вопросом / ответом, ноГлядя на это, человек, спрашивающий, использует структуры: как рассчитать значения в табличном представлении и отобразить в отдельной метке
var total = 0.0
var basePriceArray = [2.45, 18.95, 3.8]
var quantityArray = [2.0, 1.0, 5.0]
cellForRowAt
let cell = tableView.dequeueReusableCell(withIdentifier: "tableCell", for: indexPath) as! BasketCell
let basePriceAtIndex = basePriceArray[indexPath.row]
let quantityAtIndex = quantityArray[indexPath.row]
let priceAtIndex = basePriceAtIndex * quantityAtIndex
//When I add the priceAtIndex to the cell label it is calculating perfectly
//ie 4.9, 18.95, 19
//Below is my problem
for _ in productNameArray {
total += priceAtIndex
}
print(total)
//The total is printing
14.700000000000001 (ignore the one)
71.55
128.55
Выяснив логику, стоящую за ним, он умножает priceAtIndex
на количество продуктов в productNameArray
(потому что цикл for-in
считает количество продуктов).Затем добавляем последнюю цену к следующей, то есть
4,9 x 3 = 14,7
18,95 x 3 = 56,85 + 14,7 = 71,55
19,00 x 3 = 57 + 56,85 +14,7 = 128,55
Я понимаю логику, стоящую за этим, но по какой-то причине не могу выяснить это исправление?
РЕДАКТИРОВАТЬ 1 Забыл упомянуть, что есть 3 продукта вмой productNameArray
отсюда х 3