将数字四舍五入到PHP中的特殊值。 G。 “不错的价格”

将数字四舍五入到PHP中的特殊值。 G。

有时您需要将数字转成特殊值。 也许你有一个商店,想要自动计算你的售价,但你不喜欢像12.52 USD这样的价格。

这是一个小PHP函数,可以用许多不同的方式来解决这个问题。

function round_to($number, $step = 1, $sub = 0) {
    $number += $sub; // to ensure it rounds in the correct way
    if($step == 0 || $step == 1) return round($number) - $sub;
 
    return (round($number / $step) * $step) - $sub;
}

这个小帮手可以对你喜欢的每个“漂亮的价值”进行舍入。

例如:

round_to(12.34,0.5,0.01); 结果为12.49(转到下一个0.5步,减少0.01)
round_to(12.34,5,0.01); 结果为9.99(舍入到下一个5步值,减少0.01)
round.to(10.7,2); 结果是10.0(往下一个偶数的回合)

当然,你应该使用大数字的其他值,而不是用于小数字。 例如使用另一个if子句:

$x = somenumber; // e. g. your base price
$a = $x * 1.2; // 20% margin
 
if($a < 5) $a = $a; // do nothing
elseif($a < 10) $a = round_to($a, 0.5, 0.01);
elseif($a < 50) $a = round_to($a, 1, 0.01);
elseif($a < 150) $a = round_to($a, 5, 0.01);
else $a = round_to($a, 10, 0.10);

在这个例子中,销售价格将是:
1.20美元 ,基准价为1.00美元
12.99美元 ,基准价格为11.00美元 (11 * 1.2 = 13.20)
289.90美元 ,基准为243.34美元 (243.34 * 1.2 = 292.01)

玩“好价钱”;)