2011-01-05 94 views
-2

我有2個變量:$ vatRate和$ priceExVat。我想創建另一個名爲$ endPrice的變量,其中增加了VAT。我對如何做到這一點不知道,和我在PHP中的begginner,所以我想有一個代碼示例;)加入增值稅到價格

$priceExVat == $_POST['priceExVat']; 
$vatRate = $_POST['vatRate']; 
rtrim($vatRate ,'%'); 
$endPrice = ($vatRate * $priceExVat) + $priceExVat; 
echo $endPrice; 

編輯:以上是不工作的代碼返回一個0

+1

如何爲$ vatRate指定?這是作業嗎? – Gordon 2011-01-05 18:24:31

+0

速率指定爲百分比。 – 2011-01-05 18:25:15

+0

你也是:(它已經是20% – RobertPitt 2011-01-05 18:25:52

回答

4
$endPrice = ($vatRate * $priceExVat) + $priceExVat; 

$endPrice = (1+$vatRate * $priceExVat); 

$vatRate = 0.07; 
$priceExVat = 100.00; 

由於越來越-3

所有的答案是某種錯的,如果值是字符串20%

$endPrice = ((int)$vatRate/100)*$priceExVat)+$priceExVat; 
+0

如果VatRate以百分比形式定義,則不適用。 – 2011-01-05 18:26:12

+1

@James:OP從來沒有真正解釋過,所以任何人都在猜測。 – FrustratedWithFormsDesigner 2011-01-05 18:27:30

+1

**對於downvoter,這個答案出現在OP說的是百分比**之前,拿回來 – ajreal 2011-01-05 18:27:39

-1
$vatRate = "20%"; 
$priceExVat = 100;  
$endPrice = (intval($vatRate)/100) * $priceExVat + $priceExVat; 
+0

高度unlikey,變量VatRate實際上是增值稅金額。 – 2011-01-05 18:26:53

+0

你不知道,因爲它沒有在問題中指定。我認爲它是這樣的,直到另有指定。該變量稱爲速率,而不是百分比。 – 2011-01-05 18:29:54

+0

什麼是$ vatRate裏面只有值「20%」 – DogPooOnYourShoe 2011-01-05 18:33:22

1

假設$ vatRate被指定爲百分比。

$endPrice = $priceExVat * $vatRate/100 
6

打破它在全:

<?php 
    $vatRate = 20;  // This must be the percentage VAT rate. e.g.: 20, 17.5. 
    $priceExVat = 10; 
    $vatComponent = ($priceExVat/100) * $vatRate; 
    $endPrice = $priceExVat + $vatComponent; 

    echo 'The resultant price is &pound;' . number_format($endPrice, 2); 
?> 

順便說一句,你可能需要在日後的增值稅部分,所以如果你在任何非平凡的方式,使用該你真的應該存儲基準(即:增值稅前)價格,然後應用增值稅稅率並相應地進行調整以達到產出目的。

此外,您可能還需要允許多個增值稅率,因爲不是所有的商品都在英國的20%徵稅。 (有些是免稅的,有些是在 「減少」 5%的稅率徵稅,等等)

+1

假設VatRate是一個百分比,是的。 – 2011-01-05 18:27:56

+0

@詹姆斯沃爾福德 - 好點。 (如果它是一個正確的函數/方法,我已經在phpdoc參數中說過了。):-) – 2011-01-05 18:30:04

+0

$ vatRate中的內容只有值「20%」 – DogPooOnYourShoe 2011-01-05 18:34:17

2

這是怎麼了應該做的事:

function vat($ex_vat,$vat = 20.0) 
{ 
    return round($ex_vat+ ((double)$vat*($ex_vat/100)),2); 
} 

例子:

$withVat = vat(80,20); //£0.80 > £0.96 
+0

關於四捨五入的好處,但如果你的代碼實際上返回£0.80>£1.00,我不得不要求退款...... ;-) – 2011-01-05 18:35:57

+0

哈哈,在這裏你要這麼'0.04英鎊'退款。 – RobertPitt 2011-01-05 18:37:49