19th Ave New York, NY 95822, USA
+1 916-875-2235
+1 916-875-2235

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

 

 

CONSTANTE
DESCRIPCIÓN
EJEMPLO
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:

<?php
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:

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

 

Ejemplos de mode con precisión:

<?php
/* 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
?>