round

Rounds a float

Syntax

round ( float $val [, int $precision = 0 [, int $mode = PHP_ROUND_HALF_UP ]] ) : float

Parameters

val

The value to round.

precision

The optional number of decimal digits to round to. If the precision is positive, the rounding will occur after the decimal point. If the precision is negative, the rounding will occur before the decimal point. If the absolute value of the precision is greater than or equal to the number of digits, the result of the rounding is equal to 0

mode

Use one of the following constants to specify the mode in which rounding occurs.

ConstantsDescription
PHP_ROUND_HALF_UPRound val up to precision decimal places away from zero, when it is half way there. Making 1.5 into 2 and -1.5 into -2.
PHP_ROUND_HALF_DOWNRound val down to precision decimal places towards zero, when it is half way there. Making 1.5 into 1 and -1.5 into -1.
PHP_ROUND_HALF_EVENRound val to precision decimal places towards the nearest even value.
PHP_ROUND_HALF_ODDRound val to precision decimal places towards the nearest odd value.

Return

The value rounded to the given precision as a float.

Examples

1 · val · Down

<?

$val = 1.4999;

$return = round($val);

echo $return;

?>
1

2 · val · Up

<?

$val = 1.5000;

$return = round($val);

echo $return;

?>
2

3 · precision

<?

$val = 5555.5555;

for($i = -5; $i < 5; ++$i)
{
    $precision = $i;
    
    $return = round($val, $precision);
    
    echo $precision . ": " . $return . PHP_EOL;
}

?>
-5: 0
-4: 10000
-3: 6000
-2: 5600
-1: 5560
0: 5556
1: 5555.6
2: 5555.56
3: 5555.556
4: 5555.5555

4 · mode · PHP_ROUND_HALF_UP

<?

$vals = array(-2.5, -1.5, -0.5, 0.5, 1.5, 2.5);
$precision = 0;
$mode = PHP_ROUND_HALF_UP;

for($i = 0; $i < count($vals); ++$i)
{
    $return = round($vals[$i], $precision, $mode);
    
    echo $return . PHP_EOL;
}

?>
-3
-2
-1
1
2
3

5 · mode · PHP_ROUND_HALF_DOWN

<?

$vals = array(-2.5, -1.5, -0.5, 0.5, 1.5, 2.5);
$precision = 0;
$mode = PHP_ROUND_HALF_DOWN;

for($i = 0; $i < count($vals); ++$i)
{
    $return = round($vals[$i], $precision, $mode);
    
    echo $return . PHP_EOL;
}

?>
-2
-1
0
0
1
2

6 · mode · PHP_ROUND_HALF_EVEN

<?

$vals = array(-2.5, -1.5, -0.5, 0.5, 1.5, 2.5);
$precision = 0;
$mode = PHP_ROUND_HALF_EVEN;

for($i = 0; $i < count($vals); ++$i)
{
    $return = round($vals[$i], $precision, $mode);
    
    echo $return . PHP_EOL;
}

?>
-2
-2
0
0
2
2

7 · mode · PHP_ROUND_HALF_ODD

<?

$vals = array(-2.5, -1.5, -0.5, 0.5, 1.5, 2.5);
$precision = 0;
$mode = PHP_ROUND_HALF_ODD;

for($i = 0; $i < count($vals); ++$i)
{
    $return = round($vals[$i], $precision, $mode);
    
    echo $return . PHP_EOL;
}

?>
-3
-1
-1
1
1
3
HomeMenu