Funciones numéricas · cálculo

ROUND

Redondea un número a la cantidad de decimales que necesitas para mostrar o comparar un resultado.

Lectura: 6–8 minEjemplo comprobadoPráctica con pistas
Contenido de esta guía

Qué hace ROUND

ROUND devuelve un número redondeado. Puedes indicar cuántas posiciones decimales quieres conservar. Es útil en precios calculados, medias, porcentajes e informes.

Redondear un resultado no cambia automáticamente el tipo de la columna ni convierte el número en texto. Tampoco modifica los valores guardados cuando se utiliza dentro de SELECT.

Sintaxis básica

Con decimales
ROUND(numero, decimales)
Sin segundo argumento
ROUND(numero)

Sin el segundo argumento, los motores suelen redondear al entero más cercano. Los tipos aceptados y las reglas para posiciones negativas pueden variar.

Ejemplo guiado

Calculamos un precio con un 21 % adicional y redondeamos el resultado a dos decimales:

SQL
SELECT nombre,
       precio,
       ROUND(precio * 1.21, 2) AS precio_con_iva
FROM productos
ORDER BY id
LIMIT 6;
Resultado comprobado
nombreprecioprecio_con_iva
Ratón24.930.13
Teclado49.559.89
Monitor 24179.0216.59
Portátil Pro999.01208.79
Auriculares69.984.58
Monitor 27249.0301.29

Orden de las operaciones

  1. SQL calcula precio * 1.21.
  2. ROUND recibe ese resultado.
  3. El segundo argumento conserva dos posiciones decimales.
  4. La columna original precio no cambia.

Redondear no es formatear. El motor puede mostrar 30.1 en vez de 30.10 porque sigue siendo un número. Mostrar siempre dos cifras es una decisión de presentación o una conversión específica del motor.

Error frecuente

Redondear antes de terminar el cálculo

Puede acumular diferencias
SUM(ROUND(precio_unitario * cantidad, 2))

Redondear cada fila y después sumar puede producir un total distinto de sumar con toda la precisión y redondear al final. La regla correcta depende del problema contable, pero debe ser intencional.

Comprueba lo aprendido

Intermedia · combina agregación

Redondea el pedido medio por estado

Agrupa los pedidos por estado y devuelve la media de total redondeada a dos decimales con el alias media. Ordena por estado.

Intermedia · transferencia autónoma

Redondea después de sumar las líneas

Reconstruye el total de cada pedido desde detalle_pedido. Multiplica cantidad * precio_unitario, suma por pedido_id y aplica ROUND(..., 2) al resultado de la suma. Ordena por pedido_id.

Diferencias entre motores

SQLite, PostgreSQL y MySQL incluyen ROUND, pero los tipos numéricos, la precisión y el soporte de posiciones negativas no son idénticos. En cálculos financieros revisa también el tipo de la columna: un decimal exacto y un número de coma flotante no se comportan igual.

Qué debes recordar

  • El segundo argumento indica los decimales.
  • Redondear no es lo mismo que truncar.
  • Redondear no garantiza un formato con ceros finales.
  • En cálculos acumulados, decide en qué momento aplicar el redondeo.

Conceptos relacionados

Fuentes técnicas consultadas

Se utilizaron para comprobar argumentos, tipos y variantes.