ROUND (Transact-SQL)
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
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)