2016-04-28 100 views
4

floor()intval()之間有什麼區別嗎?雖然兩者都返回相同的結果,但在性能方面是否存在問題?哪兩個更快?如果我只想返回小數點的整個值,哪個php函數是正確的?PHP intval vs floor

這裏的目標是顯示1999.99到1999年,省略小數值,只返回整數。

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

不一樣的結果:'var_dump(intval($ num)); var_dump(floor($ num));'也檢查'var_dump(intval( - $ num)); var_dump(floor( - $ num));' – AbraCadaver

+0

'intval()'丟棄小數部分,並返回一個整數。 'floor()'向下滾動,並返回一個浮點數。 – Sammitch

回答

10

該函數給出不同的結果與負分數。

echo floor(-0.1); // -1 
echo intval(-0.1); // 0 
+0

現在我看到了區別。似乎浮動四捨五入它當一個負數,而intval提取整個數字(這是我想要顯示的) – basagabi

2

docs

地板的返回值()的類型爲float仍然因爲浮子的值的範圍通常比integer要大。

Intval()但是,返回int。

0
$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; 

OUTPUT: 56 | 55 | 56 | 55

$ noDeci返回55