地板和圆形有什么区别

What is the Difference between Floor and Round

         CODE                            RESULTS

$a = floor(3.5);                         //3
$b = round(3.5, 0, PHP_ROUND_HALF_DOWN); //3
var_dump($a);                            //float(3)
var_dump($b);                            //float(3)
$c = gettype($a);                        //double
$d = gettype($b);                        //double

有什么区别。?我什么时候对上面的数字使用 floor() 或 round()。?

floor() 将简单地删除十进制值,而 return 仅删除整数。

所以 floor(1.2) => 1floor(1.9) => 1

同时round()将十进制值小于0.5的数字四舍五入为低整数,大于0.5的整数为高整数:

所以 round(1.2) => 1round(1.9) => 2

另外 round() 有更多选项,例如精度和舍入选项。


Example:

$nums = [-1.5, -1, -.8, -.4, 0, .4, .8, 1, 1.5];

echo "    \tround\tfloor\tceil" . PHP_EOL;
foreach ($nums as $a) {
    echo $a . ": \t" . round($a) . "\t" . floor($a) . "\t" . ceil($a) . PHP_EOL;
}

/*
        round   floor   ceil
-1.5:   -2      -2      -1
  -1:   -1      -1      -1
-0.8:   -1      -1      -0
-0.4:   -0      -1      -0
   0:    0       0       0
 0.4:    0       0       1
 0.8:    1       0       1
   1:    1       1       1
 1.5:    2       1       2

*/

floor() 将始终删除小数点后的值,并且只向下舍入。 round() 如果提供的整数后的值等于或大于 .5,则向上舍入,否则向下舍入。

示例 1: 回合(1.5)returns 2 而地板(1.5)returns 1.

示例 2: round(3.2) 和 floor(3.2) return 3.

示例 3: 回合(2.9)returns 3 而地板(2.9)returns 2.