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

PHP - Why floor() give me another result of sams calculation

 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

等...

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

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

地板 7.25 =/= 6

因为 PHPs floating point precision

所以你的第 8 次计算不会 return 7,而是类似于 6.9999999999999999999999999999

因为这是双精度数,输出时将四舍五入为 7,试试这个:

$x = 6.9999999999999999999999999999999999999999999999999999999;
echo $x;

当您使用 floor() 时,它会(正确地)将其四舍五入为 6