PHP intval vs floor

bas*_*abi 7 php floor money-format

有什么区别floor()和intval()?虽然两者都返回相同的结果,但在性能方面是否有任何问题?哪两个更快?如果我只想返回一个十进制的整个值,那么使用哪个正确的php函数?

这里的目标是显示1999.99到1999,省略十进制值并仅返回整数.

$num = 1999.99;
$formattedNum = number_format($num)."<br>";
echo intval($num) . ' intval' . '<br />';
echo floor($num) . ' floor';
Run Code Online (Sandbox Code Playgroud)

nl-*_*l-x 13

这些函数给出了具有负分数的不同结果.

echo floor(-0.1); // -1
echo intval(-0.1); // 0
Run Code Online (Sandbox Code Playgroud)


axi*_*iac 6

最快的方法是使用类型转换:(int)$num。


Wil*_*ons 5

根据文档,

Floor()的返回值仍然是float类型,因为float的取值范围通常比integer的取值范围要大。

Intval()然而,返回一个 int。