ROUND (Transact-SQL)

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

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

ROUND ( numeric_expression , length [ ,function ] )

Argumentos

  • numeric_expression
    Es una expresión de la categoría de tipo de datos numérico exacto o numérico aproximado, excepto 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 realiza. 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.

Tipos de valor devueltos

Devuelve el mismo tipo que numeric_expression.

Notas

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.

Ejemplo Resultado

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.

Ejemplos Resultado

ROUND(748.58, -1)

750.00

ROUND(748.58, -2)

700.00

ROUND(748.58, -3)

1000.00

Ejemplos

A. Usar ROUND y valores estimados

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

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

Éste es el conjunto de resultados.

----------- -----------
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

Éste es el conjunto de resultados.

----------

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

Éste es el conjunto de resultados.

--------
151.00

(1 row(s) affected)

--------
150.00

(1 row(s) affected)

Vea también

Referencia

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

Ayuda e información

Obtener ayuda sobre SQL Server 2005