价格 + PHP 价格的 20%
Price + 20% of price in PHP
PHP 这里是新手。我创建了一个根据价格范围提高价格的函数:
function update_price ( $price) {
If (isset($price) ) {
if ($price < 60 ) {
return $price + 40;
}
elseif ($price >= 60 && $price < 100) {
return $price + 60;
}
elseif ($price >= 100 && $price < 200) {
return $price + 70;
}
elseif ($price >= 200 && $price < 300) {
return $price + 80;
}
elseif ($price >= 300 && $price < 450) {
return $price + 90;
}
elseif ($price >= 450) {
return $price + ($price * .2);
}
}
}
导入CSV文件时调用该函数。效果很好,除了功能的最后一部分。我试图将那些符合条件的产品的价格提高 20%,因此我采用 $price 并添加 ($price * .2)。但是原价 628.74 美元的产品实际售价为 754,888.00 美元,而不是 754.88 美元。
我做错了什么?
我不确定你做了什么才会给你这个错误,但是
测试代码
$base = 628.74;
$change = round($base * 0.2,2);
$new = $base + $change;
$allatonce = round(($base+($base*0.2)),2);
print_r(array($base,$change,$new,$allatonce));
输出
Array ( [0] => 628.74 [1] => 125.75 [2] => 754.49 [3] => 754.49 )
一次全部的价值将满足您的需求。
没关系 PHP returns 754.488,和计算器返回的值一样:
628.74÷5+628.74=754.488
此处需要将精度四舍五入为小数点后两位数,这可以通过 round() 函数来完成。
另外,我会这样写你的函数:
function update_price($price) {
if((!$price) || (!is_numeric($price)) || ($price <= 0)) // initial price is not valid
return -1;
if($price >= 450) return $price+round($price/5, 2, PHP_ROUND_HALF_DOWN);
if($price >= 300) return $price+90;
if($price >= 200) return $price+80;
if($price >= 100) return $price+70;
if($price >= 60) return $price+60;
return $price+40;
}
PHP 这里是新手。我创建了一个根据价格范围提高价格的函数:
function update_price ( $price) {
If (isset($price) ) {
if ($price < 60 ) {
return $price + 40;
}
elseif ($price >= 60 && $price < 100) {
return $price + 60;
}
elseif ($price >= 100 && $price < 200) {
return $price + 70;
}
elseif ($price >= 200 && $price < 300) {
return $price + 80;
}
elseif ($price >= 300 && $price < 450) {
return $price + 90;
}
elseif ($price >= 450) {
return $price + ($price * .2);
}
}
}
导入CSV文件时调用该函数。效果很好,除了功能的最后一部分。我试图将那些符合条件的产品的价格提高 20%,因此我采用 $price 并添加 ($price * .2)。但是原价 628.74 美元的产品实际售价为 754,888.00 美元,而不是 754.88 美元。
我做错了什么?
我不确定你做了什么才会给你这个错误,但是
测试代码
$base = 628.74;
$change = round($base * 0.2,2);
$new = $base + $change;
$allatonce = round(($base+($base*0.2)),2);
print_r(array($base,$change,$new,$allatonce));
输出
Array ( [0] => 628.74 [1] => 125.75 [2] => 754.49 [3] => 754.49 )
一次全部的价值将满足您的需求。
没关系 PHP returns 754.488,和计算器返回的值一样: 628.74÷5+628.74=754.488
此处需要将精度四舍五入为小数点后两位数,这可以通过 round() 函数来完成。
另外,我会这样写你的函数:
function update_price($price) {
if((!$price) || (!is_numeric($price)) || ($price <= 0)) // initial price is not valid
return -1;
if($price >= 450) return $price+round($price/5, 2, PHP_ROUND_HALF_DOWN);
if($price >= 300) return $price+90;
if($price >= 200) return $price+80;
if($price >= 100) return $price+70;
if($price >= 60) return $price+60;
return $price+40;
}