2014-11-05 160 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)將輪的結果,以避免舍入和後兩位小數點丟棄小數部分,你可以使用最後一個例子。