Redondear números en PHP con round()
Una función a tener en cuenta cuando estamos programando en PHP es round, que nos sirve para readondear cantidades.
Los parámetros que se le deben pasar son:
- El valor a redondear.
- El número de dígitos decimales a redondear (opcional).
- Una de estas constantes para especificar el modo de redondeo (opcional).
PHP_ROUND_HALF_UP | Redondea hacia arriba en caso de estar en medio | 3.5 redondearía a 4 |
PHP_ROUND_HALF_DOWN: | Redondea hacia abajoen caso de estar en medio | 3.5 redondearía a 3 |
PHP_ROUND_HALF_EVEN | Redondea hacia el siguiente valor par | 2.55 redondearía a 2.6 |
PHP_ROUND_HALF_ODD | Redondea hacia el siguiente valor impar | 2.55 redondearía a 2.5 |
Vamos a ver unos ejemplos de aplicación disponibles en php.net:
echo round(3.4); // muestra 3
echo round(3.5); // muestra 4
echo round(3.6); // muestra 4
echo round(3.6, 0); // muestra 4
echo round(1.95583, 2); // muestra 1.96
echo round(1241757, -3); // muestra 1242000
echo round(5.045, 2); // muestra 5.05
echo round(5.055, 2); // muestar 5.06
Ahora unos ejemplos de mode:
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
Ejemplos de mode con precisión:
/* Usar PHP_ROUND_HALF_UP com precisión de 1 dígito decimal */
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
/* Usar PHP_ROUND_HALF_DOWN com precisión de 1 dígito decimal */
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
/* Usar PHP_ROUND_HALF_EVEN com precisión de 1 dígito decimal */
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
/* Usar PHP_ROUND_HALF_ODD com precisión de 1 dígito decimal */
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