我必须计算具有重量的产品的运费。我的体重是克,即1000克是1公斤。
交货价格为2.80美元,最高3公斤,然后每增加一公斤0.76美元。
最大重量为100公斤。我可以做 - 如果 - 或者切换,但我想提出一些更优雅的解决方案。任何帮助都将深表感谢。
问候,约翰
答案 0 :(得分:2)
$cost = $kg <= 100 ? max(array($kg - 3 , 0)) * 0.76 + 2.80 : false
如果$kg
小于100,则:
减去3公斤,
如果结果是否定的,则将其设置为0.将剩余的kg每公斤乘以0.76美元。
最后,为最初的第一个“最多3”kg添加2.80美元的基本成本。
如果基本重量超过100,则返回false
,因为它超出范围。
以克:
$cost = $g <= 100*1000 ? max(array($g - 3*1000 , 0)) * 0.76/1000 + 2.80 : false
答案 1 :(得分:2)
如果你想要一些可读的东西(并猜测你不想圆):
if($weight <3000){
$shipping=2.8;
}elseif ($weight <100000){
$shipping=2.8+(0.00076*($weight-3000));
}else{
$shipping="to heavy";
}
echo $shipping //format $shipping depending on currency
答案 2 :(得分:-2)
尝试像
这样的无限循环$weight = $weightStart
$costs = 0;
while ($weight > 0)
{
if ($weight < 3){$costs += 2.80;$weightOnce=3} else {$costs = 0.76;$weightOnce = 1;}
$weight -= $weightOnce;
}
echo $costs;