Redondear números en C

Introducción

El lenguaje de programación C provee métodos para redondear números.

Vamos a estudiarlos a los 3 y veremos cómo redondear según el número, redondear hacia abajo y redondear hacia arriba.

Las funciones que permiten eso vienen en la librería math.h.

Recuerda que esto mismo hicimos con JavaScript hace algún tiempo.

Librería y explicación

La librería la incluimos con #include<math.h>. Como lo dije, veremos 3 métodos:

Redondear según el número: por ejemplo, si el número después del punto es 5, se redondea hacia abajo. En caso de que no, se redondea hacia arriba.

Por poner un ejemplo, 0.5 (y los mayores a él, siempre y cuando sean menor que 1) se redondea a 1 y 0.4999 (así como los menores a él) se redondea a 0.

Redondear hacia abajo: no importa la parte fraccionaria, siempre se redondeará hacia abajo.

Por poner un ejemplo, tanto 0.9, 0.5 y 0.1 se redondean a 0.

Finalmente, redondear hacia arriba: es como la anterior, pero ahora todos los números se redondean al siguiente entero próximo. 0.1, 0.5 y 0.9 se redondean a 1.

Eso fue por poner ejemplos, pero no sólo funcionan con números menor que 1, funcionan con cualquiera de ellos.

Redondear números en C con round

Veamos el primer método en donde depende de la parte fraccionaria el redondeo del número. Para esto, C proporciona el método round; que recibe un número y lo devuelve redondeado. Algunos ejemplos:

0.5 redondeado con round es: 1.00
50.48 redondeado con round es: 50.00
20.24 redondeado con round es: 20.00
9.7 redondeado con round es: 10.00
10.5 redondeado con round es: 11.00

Aquí un programa que imprime eso:

Puedes probar el código aquí.

Redondear hacia abajo con floor

Ya vimos arriba que round se usa para redondear según el número, pero si queremos que siempre se redondee hacia abajo usamos floor. Veamos este ejemplo:

La salida es:

0.5 redondeado con floor es: 0.00
50.99 redondeado con floor es: 50.00
20.24 redondeado con floor es: 20.00
0.1 redondeado con floor es: 0.00
10.5 redondeado con floor es: 10.00

Aquí un replit de prueba.

Usar ceil para redondear hacia arriba: lo contrario a floor

ceil funciona para hacer lo contrario a floor; esto es redondear hacia arriba un número.

Aquí el código que es muy parecido al de floor:

Cuando ejecutamos este programa, se imprime lo siguiente:

0.5 redondeado con ceil es: 1.00
50.99 redondeado con ceil es: 51.00
20.24 redondeado con ceil es: 21.00
0.1 redondeado con ceil es: 1.00
10.5 redondeado con ceil es: 11.00

Pruébalo tú mismo aquí.

¿Cuál usar?

Todo depende de nuestras necesidades.

Escribí esta entrada para explicar la función floor que usaré en un post de búsqueda binaria en C que estoy preparando; ahí necesito siempre redondear hacia abajo y esta función viene de maravilla.

Conclusión y notas finales

Recordemos que en este caso únicamente estamos imprimiendo. Pero como en todo lenguaje, podemos asignar el resultado a una variable.

Por ejemplo, veamos este fragmento de código:

Y no sólo eso, también podemos trabajar con el tipo de dato double o long double para mayor precisión.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

3 comentarios en “Redondear números en C”

  1. Pingback: Programa en C: búsqueda binaria recursiva y secuencial en arreglos - Parzibyte's blog

Dejar un comentario