如果没有php函数ceil,我如何对数字进行取整
我正在尝试构建一个输出将被四舍五入的函数。我知道有一个php函数,但我想将此函数用于其他用途 您希望ceil不使用天花板如果没有php函数ceil,我如何对数字进行取整,php,Php,我正在尝试构建一个输出将被四舍五入的函数。我知道有一个php函数,但我想将此函数用于其他用途 您希望ceil不使用天花板 intval($number + .5) 这是同样的事情,但您仍然在使用内置函数 编辑:显然,上述解决方案并没有像我在PHP中预期的那样工作。您可以使用round函数获得类似的效果 round($number + .5) 或者类似于另一个答案: $n = intval($number + .5); if($n < $number){ $n++; } $n=
intval($number + .5)
这是同样的事情,但您仍然在使用内置函数
编辑:显然,上述解决方案并没有像我在PHP中预期的那样工作。您可以使用round函数获得类似的效果
round($number + .5)
或者类似于另一个答案:
$n = intval($number + .5);
if($n < $number){
$n++;
}
$n=intval($number+.5);
如果($n<$number){
$n++;
}
您希望ceil不使用天花板
intval($number + .5)
这是同样的事情,但您仍然在使用内置函数
编辑:显然,上述解决方案并没有像我在PHP中预期的那样工作。您可以使用round函数获得类似的效果
round($number + .5)
或者类似于另一个答案:
$n = intval($number + .5);
if($n < $number){
$n++;
}
$n=intval($number+.5);
如果($n<$number){
$n++;
}
这样可以吗
function newceil($num)
{
$re=intval($num);
if($re<$num) $re++;
return $re
}
函数newceil($num)
{
$re=intval($num);
如果($re可以这样做吗
function newceil($num)
{
$re=intval($num);
if($re<$num) $re++;
return $re
}
函数newceil($num)
{
$re=intval($num);
如果你想向上/向下取整,$re
您可以使用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
方法
/* 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四舍五入您可以通过将小数部分转换为整数来切断小数部分,然后检查由此导出的值是否更小,甚至是初始值
$input = 3.141592653;
$intVersion = (int) $input;
if($intVersion<$input) $intVersion++;
return $intVersion
$input=3.141592653;
$intVersion=(int)$input;
如果($intVersion,您可以通过将小数部分转换为整数来切断小数部分,然后检查由此派生的值是否更小,甚至是初始值
$input = 3.141592653;
$intVersion = (int) $input;
if($intVersion<$input) $intVersion++;
return $intVersion
$input=3.141592653;
$intVersion=(int)$input;
如果($intVersion您可以使用round()
和floor()
和number\u format()
对数字进行取整
echo round(153.751); // 154
echo floor(153.751); // 153
echo number_format(153.751); // 154
您可以使用round()
和floor()
和number\u format()
对数字进行取整
echo round(153.751); // 154
echo floor(153.751); // 153
echo number_format(153.751); // 154
你也可以在phpDo中使用round
,你想要整数取整的算法吗?我不认为这是一个与语言相关的问题。我不知道你为什么要从头开始重新实现这个问题,但无论如何:你尝试了什么?还有,问题是什么?取整有点模糊。你是向正无穷方向取整?还是向正无穷方向取整可以从零开始吗?我们可以知道这个目的,这样我们可以提供帮助。你也可以在phpDo中使用舍入
,你想要舍入数字的算法吗?我不认为这是一个与语言相关的问题。我不知道你为什么要从头开始重新实现它,但在任何情况下:你尝试了什么?还有,问题是什么?舍入有点模糊。你是向正无穷大舍入?还是向零舍入?也许我们知道这个目的,这样我们可以提供帮助。?有趣的方法,从来没有这样想过:-)我曾经在AS3中做过类似的事情,我不记得为什么了。我真的很想知道提问者为什么要这样做。这种方法肯定会有类似于ceil
函数的开销。echo-ceil(2.1)。“\t”.intval(2.1+0.5);
给出32
。有趣的方法,从来没有想到过它:-)我曾经在AS3中做过类似的事情,我不记得为什么。我很想知道提问者为什么要这样做。这种方法肯定会有类似于ceil
函数的开销。echo ceil(2.1)。“\t”.intval(2.1+0.5);
给出32
。