工作示例:http: //ideone.com/Ond6PY
你有两个变量$a = 5
,即$b = 9
这两个陈述之间的主要数学差异是什么?
floor(floor($a / $b) - .5); //output: -1
和
(int)((int)($a / $b) - .5); //output: 0
工作示例:http: //ideone.com/Ond6PY
你有两个变量$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 等。 floor 向下舍入。
所以(int)((int) 5 / 9)-0.5)
你得到:
0 - 0 (0.56666666) = 0
(int)
不是函数!看这里:类型转换 - PHP DOC