TechNet
Exportar (0) Imprimir
Expandir todo

ROUND (Transact-SQL)

 

**ESTE TEMA SE APLICA A:** ![](../Image/Applies%20to/yes.png)SQL Server \(a partir de 2008\) ![](../Image/Applies%20to/yes.png)Base de datos SQL de Azure ![](../Image/Applies%20to/yes.png)Almacenamiento de datos SQL de Azure ![](../Image/Applies%20to/yes.png)Almacenamiento de datos paralelos

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

Se aplica a: de SQL Server (SQL Server 2008 a la versión actual), Base de datos SQL de Azure.

Topic link icon Convenciones de sintaxis de Transact-SQL

  
ROUND ( numeric_expression , length [ ,function ] )  

numeric_expression
Es una expresión de la categoría de tipo de datos numérico exacto o aproximado, excepto para el tipo de datos bit.

length
Es la precisión con la que se redondea numeric_expression. 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 que especifica length. Si length es un número negativo, numeric_expression se redondea a la izquierda del separador decimal, según se especifica en length.

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

Devuelve los tipos de datos siguientes.

Resultado de la expresiónTipo de valor devuelto
tinyintint
smallintint
intint
bigintbigint
Categoría decimal y numeric (p, s)decimal(p, s)
Categoría money y smallmoneymoney
Categoría float y realfloat

ROUND siempre devuelve un valor. Si length es un valor negativo y mayor que el número de dígitos anteriores al separador decimal, ROUND devuelve 0.

EjemploResultado
ROUND(748.58, -4)0

ROUND devuelve un valor de numeric_expression redondeado, independientemente del tipo de datos, cuando length 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)  

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

Adiciones de comunidad

Mostrar:
© 2016 Microsoft