作業例: http: //ideone.com/Ond6PY
$a = 5
つまり、 との 2 つの変数があります。$b = 9
これら 2 つのステートメントの数学的な主な違いは何ですか?
floor(floor($a / $b) - .5); //output: -1
と
(int)((int)($a / $b) - .5); //output: 0
作業例: http: //ideone.com/Ond6PY
$a = 5
つまり、 との 2 つの変数があります。$b = 9
これら 2 つのステートメントの数学的な主な違いは何ですか?
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
2番目のケースは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;