猿问

PHP - 为什么 floor() 给我另一个 sams 计算结果

 for($i=0;$i<=15120;$i+=504){

      echo ($i/60/8.4) . " - " .floor($i/60/8.4)."<br>";

 }

结果(我在问题上做**):


0 - 0


1 - 1


2 - 2


3 - 3


4 - 4


5 - 5


6 - 6


7 - 6


8 - 8


9 - 8


10 - 10


11 - 11


12 - 12


13 - 13


14 - 13


15 - 15


16 - 16


17 - 17


18 - 17


ETC...


一开始我认为我在所有计算中都应用了“Floo”,但是(对于“7-6”行)也是 $i = 3528 :


3528 / 60 = 58,8 == Floor ==> 58 / 8 = 7.25 

7.25 的地板 =/= 6


尚方宝剑之说
浏览 103回答 1
1回答

慕桂英4014372

这是因为 PHP 的浮点精度因此,例如,您的第 8 次计算不会返回 7,而是返回 6.9999999999999999999999999999因为这是双精度数,输出时会舍入到 7,试试这个:$x&nbsp;=&nbsp;6.9999999999999999999999999999999999999999999999999999999; echo&nbsp;$x;当你使用floor()它时,它会(正确地)四舍五入到 6
随时随地看视频慕课网APP
我要回答