PHP 间隔与下限
PHP intval vs floor
floor()
和intval()
有区别吗?虽然两个 return 的结果相同,但在性能方面有什么问题吗?两者哪个更快?如果我只想 return 小数的整个值,那么使用哪个 php 函数是正确的?
此处的目标是显示 1999.99 到 1999,省略小数值,仅 return 整数。
$num = 1999.99;
$formattedNum = number_format($num)."<br>";
echo intval($num) . ' intval' . '<br />';
echo floor($num) . ' floor';
函数给出负分数的不同结果。
echo floor(-0.1); // -1
echo intval(-0.1); // 0
最快的方法是使用type casting:(int)$num
。
根据 docs、
The return value of floor() is still of type float because the value range of float is usually bigger than that of integer.
但是,Intval()
returns 是一个整数。
$v = 1999.99;
var_dump(
intval($v),
floor($v)
);
输出:
int(1999)
float(1999)
文档:
http://php.net/manual/en/function.intval.php
http://php.net/manual/en/function.floor.php
$ratio_x = (0.70/100);
$computation = $ratio_x * 8000;
$noDeci = floor(($ratio_x * 8000)*1)/1;
$intval = intval(($ratio_x * 8000)*1)/1;
$noDeci_hc = floor((int)56*1)/1;
echo $computation."|".$noDeci."|".$noDeci_hc."|".$intval;
输出:
56|55|56|55
$noDeci returns 55???
floor()
和intval()
有区别吗?虽然两个 return 的结果相同,但在性能方面有什么问题吗?两者哪个更快?如果我只想 return 小数的整个值,那么使用哪个 php 函数是正确的?
此处的目标是显示 1999.99 到 1999,省略小数值,仅 return 整数。
$num = 1999.99;
$formattedNum = number_format($num)."<br>";
echo intval($num) . ' intval' . '<br />';
echo floor($num) . ' floor';
函数给出负分数的不同结果。
echo floor(-0.1); // -1
echo intval(-0.1); // 0
最快的方法是使用type casting:(int)$num
。
根据 docs、
但是,The return value of floor() is still of type float because the value range of float is usually bigger than that of integer.
Intval()
returns 是一个整数。
$v = 1999.99;
var_dump(
intval($v),
floor($v)
);
输出:
int(1999)
float(1999)
文档:
http://php.net/manual/en/function.intval.php
http://php.net/manual/en/function.floor.php
$ratio_x = (0.70/100);
$computation = $ratio_x * 8000;
$noDeci = floor(($ratio_x * 8000)*1)/1;
$intval = intval(($ratio_x * 8000)*1)/1;
$noDeci_hc = floor((int)56*1)/1;
echo $computation."|".$noDeci."|".$noDeci_hc."|".$intval;
输出: 56|55|56|55
$noDeci returns 55???