Dar*_*nke 194
floor() 会下来.
ceil() 会上升.
round() 默认情况下会去最近的.
除以10,执行ceil,然后乘以10以减少有效数字.
$number = ceil($input / 10) * 10;
Run Code Online (Sandbox Code Playgroud)
编辑:我这么久已经这样做了......但是TallGreenTree的答案更清晰.
小智 162
round($number, -1);
Run Code Online (Sandbox Code Playgroud)
这会将$ number舍入到最接近的10.如果需要,您还可以传递第三个变量来更改舍入模式.
更多信息:http://php.net/manual/en/function.round.php
小智 14
我实际上正在搜索一个可以舍入到最近的变量的函数,这个页面一直在我的搜索中出现.所以,当我最终自己编写这个函数时,我想我会在这里发布它以供其他人查找.
该函数将舍入到最近的变量:
function roundToTheNearestAnything($value, $roundTo)
{
$mod = $value%$roundTo;
return $value+($mod<($roundTo/2)?-$mod:$roundTo-$mod);
}
Run Code Online (Sandbox Code Playgroud)
这段代码:
echo roundToTheNearestAnything(1234, 10).'<br>';
echo roundToTheNearestAnything(1234, 5).'<br>';
echo roundToTheNearestAnything(1234, 15).'<br>';
echo roundToTheNearestAnything(1234, 167).'<br>';
Run Code Online (Sandbox Code Playgroud)
将输出:
1230
1235
1230
1169
Run Code Online (Sandbox Code Playgroud)
Tim*_*002 10
这个问题有很多答案,可能所有人都会给你你想要的答案.但正如@TallGreenTree所提到的那样,它有一个功能.
但@TallGreenTree答案的问题在于它没有向上舍入,它会向最接近的10舍入.要解决这个问题,请添加+5到您的号码以进行舍入.如果要向下舍入,请执行-5.
所以在代码中:
round($num + 5, -1);
Run Code Online (Sandbox Code Playgroud)
你不能使用round modefor四舍五入,因为它只舍入分数而不是整数.
如果你想要向上舍入到最近100,你应该使用+50.
| 归档时间: |
|
| 查看次数: |
95712 次 |
| 最近记录: |