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.?
Advertisement
Answer
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 " troundtfloortceil" . 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 */