注意:我已经尝试了圆形功能,似乎无法让它工作,因为我需要
假设我在数据库中有4个列表,它们有4种不同的价格。
1st Price = 5,783
2nd Price = 19,647
3rd Price = 12,867
4th Price = 23,647
现在我们确定数据库中的最低价格 5,783
最高价格 23,647 。
现在我要做的是将最低价格向下舍入,表示最近的 500 或 1000 ,甚至 5000
nearset 1000的例子
最低价 5,783 向下舍入= 5000
最高价 23,647 四舍五入= 24000
答案 0 :(得分:7)
您可以使用此功能:
function nearest($num, $divisor) {
$diff = $num % $divisor;
if ($diff == 0)
return $num;
elseif ($diff >= ceil($divisor / 2))
return $num - $diff + $divisor;
else
return $num - $diff;
}
这样称呼:
nearest(23647, 5000);
类似的功能,但是当你想自己决定在哪个方向进行回合时:
function roundUp($num, $divisor) {
$diff = $num % $divisor;
if ($diff == 0)
return $num;
else
return $num - $diff + $divisor;
}
function roundDown($num, $divisor) {
$diff = $num % $divisor;
return $num - $diff;
}
答案 1 :(得分:2)
查看php manual中的回合。第一个例子说:
<?php
echo round(3.4); // 3
echo round(3.5); // 4
echo round(3.6); // 4
echo round(3.6, 0); // 4
echo round(1.95583, 2); // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2); // 5.05
echo round(5.055, 2); // 5.06
?>
我认为你在寻找
round(23647, -3)
我没有检查过这个,但是它被称为工作(见手册)。
如果你想杀死','你可以使用number_format