我必须计算有重量的产品的运费。我的体重以克为单位,即 1000 克是 1 公斤。
送货价格为2.80公斤以下3美元,每增加一公斤0.76美元。
交货的最大重量为100公斤。我可以做,如果 - 否则,或者切换,但我想拿出一些更优雅的解决方案。任何帮助将不胜感激。
问候,约翰
如果你想要一些可读的东西(并且猜测你不想四舍五入):
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
$cost = $kg <= 100 ? max(array($kg - 3 , 0)) * 0.76 + 2.80 : false
如果$kg
小于 100,则:
减去 3 公斤,以及
如果结果为负数,则将其设置为 0。将其乘以剩余公斤每公斤 0.76 美元。
最后,加上初始"最多 3"公斤的 2.80 美元的基本成本。
如果基本重量超过 100,则返回false
因为这超出了范围。
以克为单位:
$cost = $g <= 100*1000 ? max(array($g - 3*1000 , 0)) * 0.76/1000 + 2.80 : false
尝试一个无限循环,比如
$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;