Так что я не могу понять, что здесь не так. Я пытаюсь рассчитать налог с продаж в общую сумму. Я пытаюсь получить две переменные здесь:PHP Налог с продаж Расчет
A. The total amount of sales tax that is being charged (i.e. $0.61 for sales tax)
B. The Grand total including the item price times the quantity plus the sales tax.
Мой сценарий, как показано ниже, так, как я это настроить прямо сейчас это только добавляет пенни к общей югу. (Вместо $ 7,00 общая сумма составляет $ 7,01)
Если суб общее после каждого пункта $7.00
и налоговая ставка 8.650%
то налог общая сумма должна быть $0.61
и общая сумма должна быть $7.61
, но это делает его $7.01
вместо этого.
public function invoice_totals($invoice_id)
{
$query = $this->CI->db->select('*');
$query = $this->CI->db->from('invoice_to_items');
$query = $this->CI->db->where('invoice_id', $invoice_id);
$query = $this->CI->db->join('items', 'items.item_id = invoice_to_items.item_id');
$query = $this->CI->db->get();
$items = $query->result();
$sub_total = '0.00';
$grand_total = '0.00';
$tax_rate = '0.0865';
$tax_total = '0.00';
foreach($items as $item)
{
$sub_total = $sub_total + ($item->item_price*$item->item_qty);
$tax_total = $tax_total + ($sub_total * $tax_rate)/100;
}
$grand_total = $grand_total + $sub_total + $tax_total;
return array(
'sub_total' => number_format($sub_total,2),
'tax_total' => number_format($tax_total, 2),
'grand_total' => number_format($grand_total,2),
);
}
Основная линия меня интересует в этом вопросе:
$tax_total = $tax_total + ($sub_total * $tax_rate)/100;
Удалить деление на 100, ваши $ TAX_RATE уже в десятичной форме. Кроме того, инициализируйте свои переменные числами, а не строками. –
Ну, тогда вы, вероятно, не должны внедрять что-то, что может предположительно даже иметь юридические последствия, если это сделано неправильно ... – CBroe
@ user3968645 Прошу прощения, но вы говорите об этом, но программирование и математика идут рука об руку. Если вы не можете выполнять основные математические операции, ваше будущее как программиста выглядит мрачным. –