0Pricing
SQL Academy · Lección

Redondeo y truncamiento

ROUND, CEIL, FLOOR y TRUNC

Redondeo y truncamiento es una lección gratuita de SQL Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de SQL Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de SQL Academy incluye 4 lecciones en total.

Por qué es importante redondear

Al trabajar con números en SQL, a menudo obtiene resultados con muchos decimales. Por ejemplo, dividir 10 entre 3 da 3.3333333...

SQL proporciona funciones integradas para controlar cuántos decimales se muestran o se almacenan: ROUND, CEIL, FLOOR y TRUNC. Son esenciales para presentar cifras financieras, mediciones y estadísticas de forma clara.

SELECT 10.0 / 3.0 AS raw_result;

ROUND: uso básico

La función ROUND() redondea un número a la cantidad especificada de decimales. Sigue las reglas de redondeo estándar: los dígitos 5 o superiores se redondean hacia arriba y los inferiores a 5, hacia abajo.

La sintaxis es: ROUND(number, decimal_places). Si omite el segundo argumento, redondea al número entero más cercano.

SELECT
  ROUND(3.14159, 2) AS two_decimals,
  ROUND(3.14159, 0) AS zero_decimals,
  ROUND(3.14159)    AS no_arg;

ROUND con posiciones negativas

Una función poco conocida de ROUND() es que puede recibir un número negativo como segundo argumento. Esto redondea a la izquierda del punto decimal, lo que resulta útil para redondear a la decena, centena o millar más cercanos.

Por ejemplo, ROUND(1567, -2) redondea a la centena más cercana y devuelve 1600.

SELECT
  ROUND(1567.89, -1)  AS nearest_ten,
  ROUND(1567.89, -2)  AS nearest_hundred,
  ROUND(1567.89, -3)  AS nearest_thousand;

CEIL: siempre redondear hacia arriba

CEIL() (también se escribe CEILING() en algunas bases de datos) siempre redondea un número hacia arriba al entero más cercano, independientemente de su parte decimal.

Esto resulta útil cuando necesita asegurarse de no quedar por debajo de un mínimo; por ejemplo, al calcular la cantidad de páginas necesarias para mostrar un conjunto de resultados.

SELECT
  CEIL(4.1)   AS ceil_4_1,
  CEIL(4.9)   AS ceil_4_9,
  CEIL(-4.1)  AS ceil_neg_4_1,
  CEIL(-4.9)  AS ceil_neg_4_9;

FLOOR: siempre redondear hacia abajo

FLOOR() siempre redondea un número hacia abajo al entero más cercano, independientemente de su parte decimal.

Observe que, para los números negativos, FLOOR redondea alejándose de cero: FLOOR(-4.1) devuelve -5, no -4. Este comportamiento es contrario a lo que esperan algunos principiantes.

SELECT
  FLOOR(4.9)   AS floor_4_9,
  FLOOR(4.1)   AS floor_4_1,
  FLOOR(-4.1)  AS floor_neg_4_1,
  FLOOR(-4.9)  AS floor_neg_4_9;

CEIL y FLOOR comparados

Ver CEIL y FLOOR juntos facilita la comprensión de la diferencia. CEIL siempre sube al siguiente número entero, mientras que FLOOR siempre baja.

Considérelo como un edificio: FLOOR es el nivel del suelo al que desciende y CEIL es el techo al que asciende.

SELECT
  2.3   AS original,
  CEIL(2.3)  AS ceil_result,
  FLOOR(2.3) AS floor_result
UNION ALL
SELECT
  7.8,
  CEIL(7.8),
  FLOOR(7.8);

TRUNC: cortar sin redondear

TRUNC() (o TRUNCATE() en MySQL) elimina los dígitos decimales sin redondear. Simplemente corta los dígitos posteriores a la posición especificada.

Esto es diferente de ROUND: TRUNC(4.9) devuelve 4, no 5. La parte decimal simplemente se descarta.

SELECT
  TRUNC(4.9)       AS trunc_4_9,
  TRUNC(4.1)       AS trunc_4_1,
  TRUNC(-4.9)      AS trunc_neg_4_9,
  TRUNC(3.14159, 3) AS trunc_3_decimals;

Comparación entre ROUND y TRUNC

La diferencia principal entre ROUND y TRUNC es que ROUND cambia el valor según el dígito siguiente, mientras que TRUNC siempre descarta todo lo que queda después del punto de corte sin hacer ajustes.

Use ROUND cuando quiera obtener el valor matemáticamente más cercano. Use TRUNC cuando quiera eliminar estrictamente la precisión sin ningún ajuste hacia arriba, algo habitual en cálculos financieros en los que nunca se debe pagar de más.

SELECT
  ROUND(2.567, 1)  AS rounded,
  TRUNC(2.567, 1)  AS truncated;
-- ROUND gives 2.6 (5 rounds up)
-- TRUNC gives 2.5 (just cuts off)

Usar ROUND en una tabla real

Las funciones de redondeo son más útiles cuando se aplican a columnas de una tabla. Aquí creamos una tabla sencilla de products con precios y aplicamos ROUND para mostrarlos de forma clara.

Este patrón es muy habitual en consultas de comercio electrónico y contabilidad, donde los cálculos sin procesar producen muchos decimales.

CREATE TABLE products (
  name  TEXT,
  price NUMERIC
);

INSERT INTO products VALUES
  ('Widget',  9.999),
  ('Gadget',  24.3333),
  ('Doohickey', 4.5678);

SELECT name, ROUND(price, 2) AS display_price
FROM products;

Combinar funciones en una consulta

Puede combinar funciones de redondeo con otras expresiones SQL. Por ejemplo, puede calcular un precio con descuento y después redondearlo para mostrarlo.

Esta consulta aplica un descuento del 15 %, redondea el resultado a 2 decimales y también muestra el FLOOR y el CEIL del precio con descuento, lo que proporciona los precios enteros mínimo y máximo.

SELECT
  name,
  price,
  ROUND(price * 0.85, 2)  AS discounted,
  FLOOR(price * 0.85)     AS min_price,
  CEIL(price  * 0.85)     AS max_price
FROM products;

Paginación con CEIL

Un uso clásico de CEIL es calcular el total de páginas en un sistema de paginación. Si tiene 97 filas y muestra 10 por página, necesita CEIL(97 / 10.0) = 10 páginas, no 9, porque la última página tiene 7 filas.

Divida siempre entre un decimal (10.0, no 10) para evitar la división entera, que descartaría el resto antes de que CEIL pueda actuar sobre él.

SELECT
  97 AS total_rows,
  10 AS rows_per_page,
  CEIL(97 / 10.0) AS total_pages;

Comprobación rápida

Compruebe cuánto ha entendido sobre las funciones de redondeo de SQL.

Resumen de la lección

¡Buen trabajo! Este es un resumen de las funciones de redondeo y truncamiento de SQL:

  • ROUND(n, d) — redondea a d decimales usando las reglas matemáticas estándar (5 o más se redondea hacia arriba).
  • CEIL(n) — siempre redondea hacia arriba al entero más cercano.
  • FLOOR(n) — siempre redondea hacia abajo al entero más cercano.
  • TRUNC(n, d) — elimina los dígitos posteriores a la posición d sin redondear; nunca aumenta el valor.

Use ROUND para mostrar datos y realizar estadísticas, CEIL para cálculos de capacidad mínima (como el número de páginas), FLOOR para cálculos del máximo que cabe y TRUNC cuando nunca deba redondear hacia arriba, especialmente en contextos financieros.

Preguntas frecuentes

¿La lección «Redondeo y truncamiento» es gratis?

Sí — el texto completo de «Redondeo y truncamiento» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de SQL Academy, actualiza a CoddyKit PRO. El curso de SQL Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Redondeo y truncamiento»?

ROUND, CEIL, FLOOR y TRUNC Practicas SQL Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar SQL Academy?

No se requiere experiencia previa. SQL Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Redondeo y truncamiento»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de SQL Academy?

Sí. Cada lección de SQL Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Aritmética y operadores
  2. Redondeo y truncamiento
  3. División de enteros frente a división decimal
  4. Funciones matemáticas útiles
← Volver a SQL Academy