0

工作示例:http: //ideone.com/Ond6PY

你有两个变量$a = 5,即$b = 9

这两个陈述之间的主要数学差异是什么?

floor(floor($a / $b) - .5); //output: -1

(int)((int)($a / $b) - .5); //output: 0

4

2 回答 2

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;
于 2013-12-21T20:17:27.393 回答
-2

(int) 是一种类型转换,您会得到一个整数,例如 2、3、5 等。 floor 向下舍入。

所以(int)((int) 5 / 9)-0.5)你得到:

0 - 0 (0.56666666) = 0

(int)不是函数!看这里:类型转换 - PHP DOC

于 2013-12-21T20:10:34.660 回答