ROUND (Transact-SQL)

Retorna um valor numérico, arredondado, ao comprimento ou precisão especificados.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

ROUND ( numeric_expression , length [ ,function ] )

Argumentos

  • numeric_expression
    É uma expressão da categoria de tipo de dados numéricos exatos ou aproximados, com exceção do tipo de dados bit.

  • length
    É a precisão à qual a numeric_expression deve ser arredondada. length deve ser uma expressão do tipo tinyint, smallint ou int. Quando length for um número positivo, numeric_expression é arredondada para o número de posições decimais especificado por length. Quando length for um número negativo, numeric_expression é arredondada no lado esquerdo do ponto decimal, conforme especificado por length.

  • function
    É o tipo de operação a ser executada. function deve ser tinyint, smallintou int. Quando function é omitido ou tem um valor 0 (padrão), a numeric_expression é arredondada. Quando um valor diferente de 0 é especificado, numeric_expression é truncado.

Tipos de retorno

Retorna os tipos de dados a seguir.

Resultado da expressão

Tipo de retorno

tinyint

int

smallint

int

int

int

bigint

bigint

Categoria decimal e numeric (p, s)

decimal(38, s)

Categoria money e smallmoney

money

Categoria float e real

float

Comentários

ROUND sempre retorna um valor. Se length for negativo e maior que o número de dígitos antes do ponto decimal, ROUND retornará 0.

Exemplo

Resultado

ROUND(748.58, -4)

0

ROUND retorna uma numeric_expression arredondada, independentemente do tipo de dados, quando length é um número negativo.

Exemplos

Resultado

ROUND(748.58, -1)

750.00

ROUND(748.58, -2)

700.00

ROUND(748.58, -3)

1000.00

Exemplos

A. Usando ROUND e estimativas

O exemplo a seguir apresenta duas expressões que, usando ROUND, demonstram que o último dígito sempre é uma estimativa.

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

Conjunto de resultados.

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

B. Usando ROUND e arredondando aproximações

O exemplo a seguir mostra arredondamentos e aproximações.

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

Conjunto de resultados.

----------

123.4500

(1 row(s) affected)

--------

100.00

(1 row(s) affected)

C. Usando ROUND para truncar

O exemplo a seguir usa duas instruções SELECT para demonstrar a diferença entre arredondamento e truncamento. A primeira instrução arredonda o resultado. A segunda instrução trunca o resultado.

SELECT ROUND(150.75, 0);
GO
SELECT ROUND(150.75, 0, 1);
GO

Conjunto de resultados.

--------
151.00

(1 row(s) affected)

--------
150.00

(1 row(s) affected)