Partilhar via


ROUND (Transact-SQL)

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

Ícone de vínculo de tópico Convençõ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 para a qual 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, smallint ou 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(p, 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 retorna 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)

Os resultados em um estouro aritmético porque o valor padrão de 748.58 é o decimal(5,2), que não pode retornar 1000.00.

Para arredondar até 4 dígitos, altere o tipo de dados da entrada. Por exemplo:

SELECT ROUND(CAST (748.58 AS decimal (6,2)),-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

Aqui está o 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

Aqui está o 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 truncagem. 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

Aqui está o conjunto de resultados.

--------
151.00

(1 row(s) affected)

--------
150.00

(1 row(s) affected)

Consulte também

Referência

CEILING (Transact-SQL)

Tipos de dados (Transact-SQL)

Expressões (Transact-SQL)

FLOOR (Transact-SQL)

Funções matemáticas (Transact-SQL)