round

Rounds a float

&reftitle.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).

PHP doesn't handle strings like `"12,300.2"` correctly by default. See converting from strings.

&reftitle.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_UP` | Round `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_DOWN` | Round `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_EVEN` | Round `val` to `precision` decimal places towards the next even value.
  `PHP_ROUND_HALF_ODD` | Round `val` to `precision` decimal places towards the next odd value.

&reftitle.returnvalues;

The rounded value

&reftitle.examples;

### `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
    ?>

### `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
    ?>

### `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
    ?>

&reftitle.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.

&reftitle.seealso;

- `ceil`
- `floor`
- `number_format`