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
What are the difference.? when do I use floor() or round() for the number above.?
floor()
will simply drop decimal value and return only integer.
So floor(1.2) => 1
and floor(1.9) => 1
.
Meanwhile round()
will round number that has decimal value lower than 0.5
to lower int, and when more than 0.5
to higher int:
So round(1.2) => 1
but round(1.9) => 2
Also round()
has more options, like precision and rounding options.
$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
*/