round
En esta página
round
Redondea un número de punto flotante
Descripción#
round(int $num, [int $precision], [int $mode]): float
```php
Devuelve el valor redondeado de `num` a la precisión `precision` (número de dígitos después del punto decimal). El argumento `precision` puede ser negativo o `null` : es su valor por omisión.
## Parámetros
`num`
El valor a redondear.
`precision`
El número opcional de decimales a redondear.
Si el argumento `precision` es positivo, `num` será redondeado utilizando el argumento `precision` para definir el número significativo de dígitos después del punto decimal.
Si el argumento `precision` es negativo, `num` será redondeado utilizando el argumento `precision` para definir el número significativo de dígitos antes del punto decimal, i.e. el múltiplo más cercano de `pow(10, -$precision)`, i.e. para una `precision` de -1, `num` será redondeado a 10, para una `precision` de -2 a 100, etc.
`mode`
Utilice RoundingMode o una de las constantes siguientes para especificar el método de redondeo.
| Constantes | Descripción |
|----|----|
| `PHP_ROUND_HALF_UP` | Redondea `num` alejándose de cero cuando está a mitad de camino, redondeando así 1.5 a 2, y -1.5 a -2. |
| `PHP_ROUND_HALF_DOWN` | Redondea `num` acercándose a cero cuando está a mitad de camino, redondeando así 1.5 a 1, y -1.5 a -1. |
| `PHP_ROUND_HALF_EVEN` | Redondea `num` al valor par más cercano cuando está a mitad de camino, redondeando así 1.5 y 2.5 a 2. |
| `PHP_ROUND_HALF_ODD` | Redondea `num` al valor impar más cercano cuando está a mitad de camino, redondeando así 1.5 a 1 y 2.5 a 3. |
Sin embargo, tenga en cuenta que algunos métodos recién añadidos solo existen en [RoundingMode](#enum.roundingmode).
## Valores devueltos
El valor redondeado a la `precision` dada como `float`.
## Errores/Excepciones
La función lanza una ValueError si `mode` es inválido. Anterior a PHP 8.4.0, un modo inválido era silenciosamente convertido en `PHP_ROUND_HALF_UP`.
## Historial de cambios
| Versión | Descripción |
|----|----|
| 8.4.0 | Cuatro nuevos métodos de redondeo han sido añadidos. |
| 8.4.0 | Ahora lanza una ValueError si `mode` es inválido. |
| 8.0.0 | `num` ya no acepta objetos internos que soporten las conversiones numéricas. |
## Ejemplos
Ejemplo con `round`
El ejemplo anterior mostrará:
float(3) float(4) float(4) float(4) float(5.05) float(5.06) float(300) float(0) float(700) float(1000)
Cómo `precision` afecta un flotante
El ejemplo anterior mostrará:
float(135.79) float(135.79) float(135.8) float(136) float(140) float(100) float(0)
Ejemplo con `mode`
El ejemplo anterior mostrará:
Método de redondeo con 9.5 float(10) float(9) float(10) float(9)
Método de redondeo con 8.5 float(9) float(8) float(8) float(9)
Ejemplo con `mode` y `precision`
El ejemplo anterior mostrará:
Uso de PHP_ROUND_HALF_UP con una precisión de una decimal float(1.6) float(-1.6)
Uso de PHP_ROUND_HALF_DOWN con una precisión de una decimal float(1.5) float(-1.5)
Uso de PHP_ROUND_HALF_EVEN con una precisión de una decimal float(1.6) float(-1.6)
Uso de PHP_ROUND_HALF_ODD con una precisión de una decimal float(1.5) float(-1.5)
Ejemplo de uso de RoundingMode
El ejemplo anterior mostrará:
HalfAwayFromZero : +8.5 -> +9 HalfAwayFromZero : +9.5 -> +10 HalfAwayFromZero : -3.5 -> -4
HalfTowardsZero : +8.5 -> +8 HalfTowardsZero : +9.5 -> +9 HalfTowardsZero : -3.5 -> -3
HalfEven : +8.5 -> +8 HalfEven : +9.5 -> +10 HalfEven : -3.5 -> -4
HalfOdd : +8.5 -> +9 HalfOdd : +9.5 -> +9 HalfOdd : -3.5 -> -3
TowardsZero : +8.5 -> +8 TowardsZero : +9.5 -> +9 TowardsZero : -3.5 -> -3
AwayFromZero : +8.5 -> +9 AwayFromZero : +9.5 -> +10 AwayFromZero : -3.5 -> -4
NegativeInfinity : +8.5 -> +8 NegativeInfinity : +9.5 -> +9 NegativeInfinity : -3.5 -> -4
PositiveInfinity : +8.5 -> +9 PositiveInfinity : +9.5 -> +10 PositiveInfinity : -3.5 -> -3
```php
Véase también#
ceil, floor, number_format