2013-03-30 134 views
0

需要一點點幫助從形式轉換字符串整數

$_POST["zapremina"]=2000; 
$_POST["starost"]="15%"; 
$_POST["namena"]="50%"; 

我想簡單的函數來做到這一點

$foo=(2000 - 15%) - 50%; 

如何做到這一點?

+0

它是'$ _POST [「zapremina」] =「2000」; $ _POST [「starost」] ='15%'; $ _POST [「namena」] =「50%」;'? – Shikiryu

+0

要將一個字符串轉換爲一個整數,您只需要'$ a =(int)$ b;' – fedorqui

回答

0

像這樣:

$starostPercentage = (substr($POST["starost"], 0, -1)/100); 
$namenaPercentage = (substr($POST["namena"], 0, -1)/100); 

$foo = ($_POST["zapremina"] * (100 - $starostPercentage)) * $namenaPercentage; 

這就是這樣做,爲什麼:

  • 從他們的文本形式轉換百分比(如15%)以十進制形式(substr(15%) = 1515/100 = 0.15)。
  • 用這些小數計算$foo2000 - 15%是你會寫的(作爲一個人),但是在PHP中,你需要將它寫爲2000 * (100 * 0.15),意思是:2000年的85%)。
+0

您不考慮'$ _POST [「zapremina」]'。另外,它會導致:'(2000 * 15)-50' – Shikiryu

+0

修復它,謝謝! –

0

我會去這個:

$zap = intval($_POST['zapremina']); 
    $sta = intval($_POST['starost']); 
    $nam = intval($_POST['namena']); 
    $foo = ($zap * ((100-$sta)/100)) * ((100 - $nam)/100) 
0

添加此功能,然後調用它

function calculation($a, $b, $c) 
    { 
     $b = substr($b, 0, -1)/100; 
     $c = substr($c, 0, -1)/100; 
     return (($a * $b) * $c); 
    } 

,現在你可以調用

$foo = calculation($_POST["zapremina"], $_POST["starost"], $_POST["namena"]); 

去功能最時間,因爲這對重用性會有幫助。

1

PHP是弱類型,所以你不必投類型的顯式或做無謂的操作(例如,str_replace函數)

你可以做到以下幾點:

$z = $_POST["zapremina"]; //$_POST["zapremina"]=2000; 
$s = $_POST["starost"]; //$_POST["starost"]=15%; 
$n = $_POST["namena"]; //$_POST["namena"]="50%; 

$result = (($z - ($z *($s/100))) - ($z * ($n/100))); 

一定要記得用括號有一個可讀的代碼和有意義的var名稱。