ROUND (Transact-SQL)

 

ESTE TEMA SE APLICA A: síSQL Server (a partir de 2008)síBase de datos SQL de AzuresíAlmacenamiento de datos SQL de Azure síAlmacenamiento de datos paralelos

Devuelve un valor numérico, redondeado a la longitud o precisión especificadas.

Topic link icon Convenciones de sintaxis de Transact-SQL

-- Syntax for SQL Server and Azure SQL Database  
  
ROUND ( numeric_expression , length [ ,function ] )  

-- Syntax for Azure SQL Data Warehouse and Parallel Data Warehouse  
  
ROUND (numeric_expression , length )  

numeric_expression
Es un expresión de exactos categoría de tipos de datos numéricos o numéricos aproximados excepto para la bits tipo de datos.

longitud
Es la precisión con que numeric_expression se redondea. longitud debe ser una expresión de tipo tinyint, smallint, o int. Cuando longitud es un número positivo, numeric_expression se redondea al número de posiciones decimales que especifica longitud. Cuando longitud es un número negativo, numeric_expression se redondea a la izquierda del separador decimal, según lo especificado por longitud.

(función)
Es el tipo de operación que se va a realizar. función debe ser tinyint, smallint, o int. Cuando función se omite o tiene un valor de 0 (valor predeterminado), numeric_expression se redondea. Si especifica un valor distinto de 0 es, numeric_expression se trunca.

Devuelve los tipos de datos siguientes.

Resultado de la expresiónTipo de valor devuelto
tinyintint
smallintint
intint
bigintbigint
decimal y numérico categoría (p, s)decimal (p, s)
Money y smallmoney categoríaMoney
float y real categoríafloat

ROUND siempre devuelve un valor. Si longitud es negativo y mayor que el número de dígitos que hay delante del separador decimal, ROUND devuelve 0.

EjemploResultado
ROUND (748.58, -4)0

ROUND devuelve un redondeado numeric_expression, independientemente del tipo de datos, cuando longitud es un número negativo.

EjemplosResultado
ROUND (748.58, -1)750.00
ROUND (748.58, -2)700.00
ROUND(748.58, -3)Da como resultado un desbordamiento aritmético, porque 748.58 es de forma predeterminada decimal(5,2), que no puede devolver 1000.00.
Para redondear a cuatro dígitos, cambie el tipo de datos de la entrada. Por ejemplo:

 SELECT ROUND(CAST (748.58 AS decimal (6,2)),-3);
1000.00

A. Usar ROUND y valores estimados

En el ejemplo siguiente se muestran dos expresiones que demuestran que cuando se usa la función ROUND, el último dígito siempre es un valor estimado.

SELECT ROUND(123.9994, 3), ROUND(123.9995, 3);  
GO  

El conjunto de resultados es el siguiente.

----------- -----------  
123.9990    124.0000      

B. Usar ROUND y aproximaciones de redondeo

En el ejemplo siguiente se muestran redondeos y aproximaciones.

SELECT ROUND(123.4545, 2);  
GO  
SELECT ROUND(123.45, -2);  
GO  

El conjunto de resultados es el siguiente.

----------

123.4500

(1 row(s) affected)

--------

100.00

(1 row(s) affected)

C. Usar 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  
SELECT ROUND(150.75, 0, 1);  
GO  

El conjunto de resultados es el siguiente.

--------  
151.00  
  
(1 row(s) affected)  
  
--------  
150.00  
  
(1 row(s) affected)  

D. Usar ROUND y valores estimados

En el ejemplo siguiente se muestran dos expresiones que demuestran que cuando se usa la función ROUND, el último dígito siempre es un valor estimado.

SELECT ROUND(123.994999, 3), ROUND(123.995444, 3);  

El conjunto de resultados es el siguiente.

-------- ---------

123.995000 123.995444

E. Usar ROUND y aproximaciones de redondeo

En el ejemplo siguiente se muestran redondeos y aproximaciones.

SELECT ROUND(123.4545, 2), ROUND(123.45, -2);  

El conjunto de resultados es el siguiente.

-------- ----------

123.45 100.00

CEILING (Transact-SQL)
Tipos de datos (Transact-SQL)
Expresiones (Transact-SQL)
FLOOR (Transact-SQL)
Funciones matemáticas (Transact-SQL)

Adiciones de comunidad

AGREGAR
Mostrar: