我正在尝试构建一个输出将被四舍五入的函数。我知道有一个PHP函数,但我想将此函数用于其他目的。
答案 0 :(得分:4)
你想要ceil而不使用天花板...
intval($number + .5)
这是一回事,但您仍在使用内置功能。</ p>
编辑:显然上面的解决方案不正如我在PHP中所预期的那样。你可以使用圆函数来达到类似的效果
round($number + .5)
或类似于另一个答案:
$n = intval($number + .5);
if($n < $number){
$n++;
}
答案 1 :(得分:1)
愿这样做吗?
function newceil($num)
{
$re=intval($num);
if($re<$num) $re++;
return $re
}
答案 2 :(得分:1)
您可以通过将小数部分转换为整数来切断小数部分,然后检查这样得出的值是否更小甚至是初始值。
$input = 3.141592653;
$intVersion = (int) $input;
if($intVersion<$input) $intVersion++;
return $intVersion
答案 3 :(得分:0)
如果你想要向上/向下舍入
您可以使用round
方法
/* Using PHP_ROUND_HALF_UP with 1 decimal digit precision */
echo round( 1.55, 1, PHP_ROUND_HALF_UP); // 1.6
echo round( 1.54, 1, PHP_ROUND_HALF_UP); // 1.5
echo round(-1.55, 1, PHP_ROUND_HALF_UP); // -1.6
echo round(-1.54, 1, PHP_ROUND_HALF_UP); // -1.5
/* Using PHP_ROUND_HALF_DOWN with 1 decimal digit precision */
echo round( 1.55, 1, PHP_ROUND_HALF_DOWN); // 1.5
echo round( 1.54, 1, PHP_ROUND_HALF_DOWN); // 1.5
echo round(-1.55, 1, PHP_ROUND_HALF_DOWN); // -1.5
echo round(-1.54, 1, PHP_ROUND_HALF_DOWN); // -1.5
/* Using PHP_ROUND_HALF_EVEN with 1 decimal digit precision */
echo round( 1.55, 1, PHP_ROUND_HALF_EVEN); // 1.6
echo round( 1.54, 1, PHP_ROUND_HALF_EVEN); // 1.5
echo round(-1.55, 1, PHP_ROUND_HALF_EVEN); // -1.6
echo round(-1.54, 1, PHP_ROUND_HALF_EVEN); // -1.5
/* Using PHP_ROUND_HALF_ODD with 1 decimal digit precision */
echo round( 1.55, 1, PHP_ROUND_HALF_ODD); // 1.5
echo round( 1.54, 1, PHP_ROUND_HALF_ODD); // 1.5
echo round(-1.55, 1, PHP_ROUND_HALF_ODD); // -1.5
echo round(-1.54, 1, PHP_ROUND_HALF_ODD); // -1.5
?>
注意:ceil round up
答案 4 :(得分:0)
您可以使用round()
和floor()
以及number_format()
来进行汇总。
echo round(153.751); // 154
echo floor(153.751); // 153
echo number_format(153.751); // 154