У меня есть база данных, в которой хранится стоимость продукта как (DECIMAL) 9,2
с именем cost
в виде столбца.
Я создал контроллер корзины, который отлично работает. Убедившись, что в корзине есть товары, я затем проверяю содержимое товара, вычисляя общую стоимость с указанным товаром и количеством.
$total = 0;
foreach(session('cart') as $key => $product)
$total = $total + (\DB::table('product_list')->where('id', $key)->get()->first()->cost * $product[0]['quantity']);
Проблема, которую я получаю, заключается в том, что знак после запятой игнорируется. Если стоимость составляет 150.00
, у меня есть 1
количество, тогда итоговое значение получается как 150
без двух десятичных знаков.
Я пытался использовать bcmul()
, который предназначен для десятичной интеграции с математикой, но это дает мне тот же результат. Я также пытался использовать ROUND($total, 2)
, чтобы получить ближайшие 2 десятичных знака, если нет, то .00
, но это тоже не сработало.
Можно ли обеспечить сохранение этих десятичных разрядов после использования каких-либо математических запросов или же можно сложить все затраты вместе в SQL Query Builder?
Заранее спасибо.