工作例如:http://ideone.com/Ond6PY這兩個PHP方程有什麼顯着差異?
你有兩個變量,即$a = 5
和$b = 9
什麼是這兩個語句之間的主要差別數學?
floor(floor($a/$b) - .5); //output: -1
和
(int)((int)($a/$b) - .5); //output: 0
工作例如:http://ideone.com/Ond6PY這兩個PHP方程有什麼顯着差異?
你有兩個變量,即$a = 5
和$b = 9
什麼是這兩個語句之間的主要差別數學?
floor(floor($a/$b) - .5); //output: -1
和
(int)((int)($a/$b) - .5); //output: 0
看看你的表情的部分四捨五入。
的5/9劃分是
$a/$b = 5/9 = 0.555555556
故見http://php.net/manual/en/function.floor.php
floor(1.5) = 1
floor(-1.5) = -2
然後
floor(floor($a/$b) - .5) = floor(floor(0.555555556)) = floor(0 - .5) = floor(-.5) = -1
和第二殼體 看到http://www.php.net/intval
(int) 4.32 = 4
然後
(int)((int)($a/$b) - .5) = (int)((int)(0.555555556) - .5) = (int)(0 - .5) = int(-0.5) = 0;
(INT)是一個類型轉換,你會得到一個整數例如2,3,5等地板下降。
因此,與(int)((int) 5/9)-0.5)
你:
0 - 0(0.56666666)= 0
(int)
是不是一個功能!看看這裏:Type Casting - PHP DOC
猜測:'floor'向下舍入(到負無窮大),'(INT)'截斷(輪朝向0)。 – zch
(int)是一個類型轉換,不是函數! – Sebi2020
[這個問題]的答案答案(http://stackoverflow.com/questions/3300290/cast-to-int-vs-floor)解釋說。和zch上面的評論一樣。 – Michael