簡體   English   中英

從表單將字符串轉換為整數

[英]Converting string to integer from form

需要一點幫助

我有

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

我想要簡單的功能來做到這一點

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

怎么做?

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)));

切記使用括號使代碼可讀並有意義的變量名。

像這樣:

$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 )。
  • 用這些小數計算$foo 2000 - 15%是您要編寫的(作為人類),但是在PHP中,您需要將其編寫為2000 * (100 * 0.15) ,即:2000的85%。

我會這樣:

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

添加此函數,然后調用它

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"]);

大多數情況下都應該使用功能,因為這將有助於可重用性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM