round
(PHP 4, PHP 5)
round — Rounds a float
Description
float round
( float
$val
[, int $precision = 0
[, int $mode = PHP_ROUND_HALF_UP
]] )
Returns the rounded value of val to
specified precision
(number of digits after the decimal point).
precision can also be negative or zero (default).
Note: PHP doesn't handle strings like "12,300.2" correctly by default. See converting from strings.
Parameters
-
val -
The value to round
-
precision -
The optional number of decimal digits to round to.
-
mode -
Use one of the following constants to specify the mode in which rounding occurs.
Constant Description PHP_ROUND_HALF_UPRound valup toprecisiondecimal places away from zero, when it is half way there. Making 1.5 into 2 and -1.5 into -2.PHP_ROUND_HALF_DOWNRound valdown toprecisiondecimal places towards zero, when it is half way there. Making 1.5 into 1 and -1.5 into -1.PHP_ROUND_HALF_EVENRound valtoprecisiondecimal places towards the next even value.PHP_ROUND_HALF_ODDRound valtoprecisiondecimal places towards the next odd value.
Return Values
The rounded value
Examples
Example #1 round() examples
<?php
echo round(3.4); // 3
echo round(3.5); // 4
echo round(3.6); // 4
echo round(3.6, 0); // 4
echo round(1.95583, 2); // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2); // 5.05
echo round(5.055, 2); // 5.06
?>
Example #2 mode examples
<?php
echo round(9.5, 0, PHP_ROUND_HALF_UP); // 10
echo round(9.5, 0, PHP_ROUND_HALF_DOWN); // 9
echo round(9.5, 0, PHP_ROUND_HALF_EVEN); // 10
echo round(9.5, 0, PHP_ROUND_HALF_ODD); // 9
echo round(8.5, 0, PHP_ROUND_HALF_UP); // 9
echo round(8.5, 0, PHP_ROUND_HALF_DOWN); // 8
echo round(8.5, 0, PHP_ROUND_HALF_EVEN); // 8
echo round(8.5, 0, PHP_ROUND_HALF_ODD); // 9
?>
Example #3 mode with precision examples
<?php
/* Using PHP_ROUND_HALF_UP with 1 decimal digit precision */
echo round( 1.55, 1, PHP_ROUND_HALF_UP); // 1.6
echo round( 1.54, 1, PHP_ROUND_HALF_UP); // 1.5
echo round(-1.55, 1, PHP_ROUND_HALF_UP); // -1.6
echo round(-1.54, 1, PHP_ROUND_HALF_UP); // -1.5
/* Using PHP_ROUND_HALF_DOWN with 1 decimal digit precision */
echo round( 1.55, 1, PHP_ROUND_HALF_DOWN); // 1.5
echo round( 1.54, 1, PHP_ROUND_HALF_DOWN); // 1.5
echo round(-1.55, 1, PHP_ROUND_HALF_DOWN); // -1.5
echo round(-1.54, 1, PHP_ROUND_HALF_DOWN); // -1.5
/* Using PHP_ROUND_HALF_EVEN with 1 decimal digit precision */
echo round( 1.55, 1, PHP_ROUND_HALF_EVEN); // 1.6
echo round( 1.54, 1, PHP_ROUND_HALF_EVEN); // 1.5
echo round(-1.55, 1, PHP_ROUND_HALF_EVEN); // -1.6
echo round(-1.54, 1, PHP_ROUND_HALF_EVEN); // -1.5
/* Using PHP_ROUND_HALF_ODD with 1 decimal digit precision */
echo round( 1.55, 1, PHP_ROUND_HALF_ODD); // 1.5
echo round( 1.54, 1, PHP_ROUND_HALF_ODD); // 1.5
echo round(-1.55, 1, PHP_ROUND_HALF_ODD); // -1.5
echo round(-1.54, 1, PHP_ROUND_HALF_ODD); // -1.5
?>
Changelog
| Version | Description |
|---|---|
| 5.3.0 |
The mode parameter was introduced.
|
| 5.2.7 | The inner workings of round() was changed to conform to the C99 standard. |
See Also
- ceil() - Round fractions up
- floor() - Round fractions down
- number_format() - Format a number with grouped thousands