У меня есть магазин, где клиент вводит цену продукта с налогом в своей стране. Когда я сохраню его, мне нужно убрать налог и оставить только базу.
Когда я рассчитываю возврат налога для клиентов из одной страны, в некоторых случаях общая цена будет отличаться на 0,01, 0,03, а затем от исходной цены.
Я пробовал рассчитывать от 2 до 4 цифр, но это никогда не срабатывает во всех случаях.
Пример: цена с налогом = 157, налог 7,7% => база = 145,78 и сумма налога 11,22.
Когда я рассчитываю налог на предыдущую ценовую базу, я получаю следующее:
База: 145,78, налог 7,7% => 11,23 = цена 157,01
PHP-код, который я использую:
$baseprice = round($fullprice / (1+($taxperc/100)),2);
На интерфейсе:
$tax = round($baseprice * ( $taxperc / 100 ),2);
$total = $tax + $baseprice;
У кого-нибудь есть предложение, как это исправить?
Спасибо!
Обновление: после некоторых исследований я нашел решение - использовать раунд с PHP_ROUND_HALF_EVEN
Update2: первое решение не работает. 1-9 работает нормально, 10 - налог + налог = 10.01