有时您需要将数字转成特殊值。 也许你有一个商店,想要自动计算你的售价,但你不喜欢像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)
玩“好价钱”;)