您有两个变量,即$a = 5
和$b = 9
这两个陈述之间有哪些主要的数学差异?
floor(floor($a / $b) - .5); //output: -1
和
(int)((int)($a / $b) - .5); //output: 0
答案 0 :(得分:3)
查看表达部分的四舍五入。
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;
答案 1 :(得分:-2)
(int)是一个类型转换,你得到一个整数,例如地板向下滚动2,3,5等。
所以(int)((int) 5 / 9)-0.5)
得到:
0 - 0(0.56666666)= 0
(int)
不是函数!看这里:Type Casting - PHP DOC