Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia administrada de Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Punto de conexión de SQL Analytics en Microsoft Fabric
Almacén en Microsoft Fabric
Base de datos SQL en Microsoft Fabric
Devuelve un valor numérico, redondeado a la longitud o precisión especificadas.
Convenciones de sintaxis de Transact-SQL
Sintaxis
ROUND ( numeric_expression , length [ , function ] )
Argumentos
numeric_expression
Una expresión de la categoría de tipo de datos numérico exacto o numérico aproximado.
length
La precisión a la que numeric_expression debe redondearse. length debe ser una expresión de tipo tinyint, smallint o int. Si length es un número positivo, numeric_expression se redondea al número de posiciones decimales especificado por length. Si length es un número negativo, numeric_expression se redondea al número de posiciones decimales especificado por length.
function
El tipo de operación que hay que realizar.
La función debe ser Tinyint, SmallInt o INT. Cuando se omite la función o tiene un valor de 0 (por defecto), numeric_expression se redondea. Cuando se especifica un valor distinto a 0 , numeric_expression se trunca.
Tipos de retorno
Devuelve los tipos de datos siguientes.
| Resultado de la expresión | Tipo de valor devuelto |
|---|---|
| tinyint | int |
| smallint | int |
| int | int |
| bigint | bigint |
| Categorías decimal y numeric (p, s) | decimal(p, s) |
| Categorías money y smallmoney | money |
| Categorías float y real | float |
Comentarios
ROUNDsiempre devuelve un valor. Si la longitud es negativa y mayor que el número de dígitos antes del decimal,ROUNDdevuelve0.Ejemplo Resultado ROUND(748.58, -4)0 ROUNDdevuelve un numeric_expression redondeado, independientemente del tipo de dato, cuando la longitud es un número negativo.Ejemplos Resultado ROUND(748.58, -1)750,00 ROUND(748.58, -2)700,00 ROUND(748.58, -3)Resulta en un desbordamiento aritmético, porque 748.58 por defecto es decimal(5, 2), que no puede devolver 1000.00.Para redondear a cuatro dígitos, cambia el tipo de datos de la entrada. Por ejemplo:
SELECT ROUND(CAST (748.58 AS DECIMAL (6, 2)), -3);Este es el conjunto de resultados.
1000.00ROUNDRompe el empate redondeando la mitad lejos de cero (también conocido como redondeo comercial).Ejemplos Resultado ROUND(1.15, 1)1.2 ROUND(-1.15, 1)-1,2
Ejemplos
A. Usa ROUND y estimaciones
El siguiente ejemplo muestra dos expresiones que demuestran usando ROUND, el último dígito siempre es una estimación.
SELECT ROUND(123.9994, 3),
ROUND(123.9995, 3);
GO
Este es el conjunto de resultados.
----------- -----------
123.9990 124.0000
B. Usa aproximaciones de ROUND y de redondeo
En el ejemplo siguiente se muestran redondeos y aproximaciones.
SELECT ROUND(123.4545, 2),
ROUND(123.45, -2);
Este es el conjunto de resultados.
---------- ----------
123.4500 100.00
C. Usa ROUND para truncar
En el ejemplo siguiente se utilizan dos instrucciones SELECT para demostrar la diferencia entre redondear y truncar. La primera instrucción redondea el resultado. La segunda instrucción lo trunca.
SELECT ROUND(150.75, 0);
GO
Este es el conjunto de resultados.
151.00
SELECT ROUND(150.75, 0, 1);
GO
Este es el conjunto de resultados.
150.00