2014-11-05 223 views
0

林试图与下列值的计算:如何用PHP来计算与PHP增值税百分比总

  • 产品成本(不含增值税)= 12,40($产品)
  • 增值税率= 21%,我会在数据库中存储为0.21($ vat_perc)
  • 的增值税为2604($增值税)

编辑:增值税是每个产品

当我尝试获得总然后我得到15.00($总计)

我所做的是以下几点:

$total = $product + $vat 

这将呼应15.004

然后我用number_format :

echo(number_format($total,2,',','.')); 

这将打印15.00

但后来我想乘的产品有2

这样会给下面的计算:

$total = $product * 2 + $vat 

再说我使用的格式:

echo(number_format($total,2,',','.')); 

那么总= 30, 01

我尝试了一些像ROUND INT这样的东西,但没有成功。

我在做什么错?在知道增值税是邪恶的,但我不知道如何解决这个问题。

+0

'$ product * 2 + $ vat'这个公式是否正确btw? – zerkms 2014-11-05 20:31:32

+0

@DavidThomas:对,我改了标题,谢谢! – Allan 2014-11-05 20:48:11

+0

@zerkms增值税是每个产品。 – Allan 2014-11-05 20:50:56

回答

1

$tax = round(($price/100) * 3.8, 2); 税是圆的价格由100分做出了明确的百分比。乘以想要的筹码 ,然后您对价格表进行增加或减少。

很高兴有你在电话中 - 也许我们可以通过电话更快地解决这个问题。感谢上帝的手机!

干杯队友!

0

您的初始总数为15.004,因此当您拨打number_format时,它将舍入到15.00。现在,当你乘以2时,你的总数是15.008其中number_format将会达到15.01。这个问题不是在增加它是乘以2. number_format到最近的地方,你的情况是30.01。

如果你要的号码将被舍去所有的时间用floor,就像这样:

$total = floor(($product * 200))/100 + $vat; 
echo(number_format($total,2,',','.')); 
+0

你能给我一个方向来解决它吗? – Allan 2014-11-05 20:55:24

0

下面是一些如何用PHP函数四舍五入的例子。

$product = 12.40; 
$vat = 2.644; 
$total = ($product + $vat) * 2; 

var_dump($total); // float(30.088) 
var_dump(number_format($total,2,',','.')); // string(5) "30,09", rounded 
var_dump(round($total, 2)); // float(30.09), rounded 
var_dump(sprintf('%0.2f', $total)); // string(5) "30.09", rounded 
var_dump(floor($total * 100)/100); // float(30.08), not rounded 

所有这三个founctions(number_formatroundsprintf)将轮的结果,以避免舍入和后两位小数点丢弃小数部分,你可以使用最后一个例子。