10

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

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

$num = 1999.99;
$formattedNum = number_format($num)."<br>";
echo intval($num) . ' intval' . '<br />';
echo floor($num) . ' floor';
4

5 回答 5

17

这些函数给出了不同的负分数结果。

echo floor(-0.1); // -1
echo intval(-0.1); // 0
于 2016-04-28T20:21:11.427 回答
6

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

于 2016-04-28T20:22:38.953 回答
5

根据文档

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

Intval()但是,返回一个 int。

于 2016-04-28T20:23:49.793 回答
0
$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

于 2016-04-28T20:39:10.840 回答
-1
$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 返回 55???

于 2017-03-16T04:28:54.517 回答