从php中的值减去一个百分比

时间:2009-12-08 02:57:55

标签: php

我正在写一些类似于优惠券代码的功能,并希望能够处理设定金额代码以及百分比金额。

我的代码如下;

$amount = "25"; // amount of discount
$percent = "yes"; // whether coupon is (yes) a percentage, or (no) a flat amount

if($percent == "yes"){
$newprice = ???????; // subtract $amount % of $price, from $price
}else{
$newprice = $price - $amount; // if not a percentage, subtract from price outright
}

我正在搜索谷歌,因为你正在阅读这个寻找解决方案,但我想在这里发布它也可以帮助其他可能遇到同样问题的人。

5 个答案:

答案 0 :(得分:42)

这个怎么样?

$newprice = $price * ((100-$amount) / 100);

答案 1 :(得分:6)

我会去

$newprice = $price - ($price * ($amount/100))

答案 2 :(得分:5)

要获得一个数字的百分比,您可以乘以所需百分比的小数。例如,如果你想要25%的折扣,你可以乘以.75,因为你希望它的价格是原价的75%。要为您的示例实现此功能,您需要执行以下操作:

if($percent == "yes"){
    $newprice = ($price * ((100-$amount) / 100)); // subtract $amount % of $price, from $price
}else{
    $newprice = $price - $amount; // if not a percentage, subtract from price outright
}

这是做什么的:

  1. 从100减去百分比折扣,以便给出原始价格的百分比。
  2. 将此数字除以100,以十进制(例如0.75)给我们。
  3. 将原始价格乘以上面的计算小数,以获得新价格。

答案 3 :(得分:4)

除了基础数学,我还建议您考虑使用round()强制结果有2位小数。

$newprice = round($price * ((100-$amount) / 100), 2);

通过这种方式,24美元的24.99美元折价将产生18.7425,然后四舍五入到18.74

答案 4 :(得分:2)

$price -= ($percent == 'yes' ? ($price * ($amount / 100)) : $amount);