Advertisement
  1. Code
  2. PHP

PHP round, ceil y de floor: ¿Cuál usar?

by
Read Time:4 minsLanguages:

Spanish (Español) translation by Charles (you can also view the original English article)

Muchos programas, tanto grandes como pequeños, requieren que tratemos con números. Hay dos formas de definir los números en PHP. Pueden número de punto flotantes o enteros. También podemos usar cadenas para representar números muy grandes. Puedes aprender más sobre estos tipos de datos y la conversión entre ellos en enteros, flotantes y cadenas de números en PHP.

Aquí nos centraremos en algunas funciones relacionadas con enteros y flotantes. En este tutorial hablaremos de floor(), de ceil () y round().

Definiciones

Empecemos por la finalidad de todas las funciones.

  1. floor() - Esta función redondea los números de punto flotantes a la baja hasta el número entero anterior. Por ejemplo, 5.2 se convierte en 5 y 8.9 en 8.
  2. ceil() - Esta función redondea los  números de punto flotantes a números enteros. Por ejemplo, 5.2 se convierte en 6 y 8.9 en 9.
  3. round() - Esta función devuelve un número de punto flotante que ha sido redondeado hacia arriba o hacia abajo y lo aproxima a la precisión especificada. Si no se especifica ninguna precisión, se redondeará al número entero más cercano: 5.2 se convierte en 5 y 8.9 en 9.

Recuerda que el valor de retorno de estas funciones serán enteros matemáticamente hablando, pero seguirán siendo un tipo de datos de punto flotante.

¿Cuál debes usar?

Todas las funciones son útiles en situaciones específicas que trataremos a continuación:

PHP floor() vs PHP ceil()

Las funciones de floor() y de ceil() son útiles cuando se trata de situaciones que sólo requieren el uso de números enteros. Considera los dos ejemplos a continuación:

Digamos que hay que escribir un programa que determine el número de contenedores que se necesitarían para enviar unos huevos al mercado. Aquí tenemos dos restricciones. En primer lugar, los contenedores no pueden ser fracciones. En segundo lugar, tenemos que enviar todos los huevos. Esto significa que necesitaremos un contenedor entero aunque no se llene del todo. Por lo tanto, debemos utilizar el de ceil().

Considera otra situación en la que tengas que determinar cuántas personas pueden alimentarse completamente con los alimentos disponibles. En este caso, sólo debes invitar a personas si se estás seguro de que las puedes alimentar con la comida disponible sin pedir nada extra. Tendremos que ignorar la comida sobrante que no puede alimentar a un adulto. Por lo tanto, debemos utilizar la de floor().

PHP round()

La función PHP round() es diferente a de floor() y a ceil() porque nos lleva al entero más cercano (cuando no se especifica la precisión) en lugar de redondear siempre hacia arriba o hacia abajo. Toma tres parámetros:

  1. El número que quieres redondear.
  2. La precisión para redondear el número. El valor por defecto es cero, lo que significa que no hay dígitos después del decimal.
  3. El modo de redondear números que están a medio camino como 3.5, 2.5 y -4.5.

Esta función se suele utilizar para simplificar los números en situaciones cotidianas en las que no necesitamos una precisión total. Desde el punto de vista científico, también podemos utilizar el redondo() para deshacernos de la precisión adicional espuria añadida por los cálculos sobre la precisión de los datos utilizados en dichos cálculos.

En resumen, para la vida cotidiana, el uso de redondo() es útil en situaciones en las que el valor exacto de un número no es importante y necesitamos una aproximación fácil de recordar.

Reflexiones finales

En este tutorial, hemos discutido brevemente cómo utilizar de floor(), de ceil() y round(). La función de floor() es útil cuando se quiere obtener siempre el siguiente número entero más bajo y el de ceil() es útil cuando se quiere obtener el siguiente número entero más alto. La función redondo() se utiliza para redondear al número más cercano (entero o no) con la precisión especificada.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.