Php TAX减法&加回来

时间:2018-03-27 22:53:50

标签: php shopping-cart tax

我有一家商店,客户在其所在国家/地区按税率输入产品价格。当我保存它我需要删除税,只保留基数。

当我在某些情况下计算来自同一国家/地区的客户的退税时,总价格会有0.01,0.03与原价不同。

我尝试用2到4位数进行计算,但它并不适用于所有情况。

  

例:税价= 157,税率为7.7%=> base = 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 -tax + tax = 10.01

2 个答案:

答案 0 :(得分:0)

今天的解决方案是使用全数字(基本价格,税金和总数)在后面工作,并且仅在显示供用户进行舍入时使用。 :)

答案 1 :(得分:-1)

似乎(不是100%肯定,我需要测试更多)解决方案是使用银行家舍入PHP_ROUND_HALF_EVEN

$baseprice = round($fullprice / (1+($taxperc/100)),2 , PHP_ROUND_HALF_EVEN);
$tax = round($baseprice * ( $taxperc / 100 ),2 , PHP_ROUND_HALF_EVEN);
$total = $tax + $baseprice;