Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
Ponto de extremidade de análise de SQL no Microsoft Fabric
Depósito no Microsoft Fabric
Banco de dados SQL no Microsoft Fabric
Retorna um valor numérico, arredondado, para o comprimento ou precisão especificados.
Convenções de sintaxe de Transact-SQL
Sintaxe
ROUND ( numeric_expression , length [ , function ] )
Argumentos
numeric_expression
Uma expression da categoria de tipo de dados numéricos exatos ou aproximados.
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 é um número positivo, numeric_expression é arredondado para o número de posições decimais especificado por length. Quando length é um número negativo, numeric_expression é arredondado à esquerda da vírgula decimal, conforme especificado por length.
função
O tipo de operação a ser realizada.
A função deve ser minuente,pequena ouint. Quando a função é omitida ou tem valor de 0 (padrão), 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 |
| Categorias decimal e numeric (p, s) | decimal(p, s) |
| Categorias money e smallmoney | money |
| Categorias float e real | float |
Comentários
ROUNDsempre retorna um valor. Se o comprimento for negativo e maior que o número de dígitos antes do ponto decimal,ROUNDretorna0.Exemplo Resultado ROUND(748.58, -4)0 ROUNDretorna um numeric_expression arredondado, independentemente do tipo de dado, quando o comprimento é um número negativo.Exemplos Resultado ROUND(748.58, -1)750.00 ROUND(748.58, -2)700.00 ROUND(748.58, -3)Isso resulta em um transbordamento aritmético, porque 748,58 por padrão é decimal(5, 2), que não pode devolver 1000.00.Para arredondar para quatro dígitos, mude o tipo de dado da entrada. Por exemplo:
SELECT ROUND(CAST (748.58 AS DECIMAL (6, 2)), -3);Veja a seguir o conjunto de resultados.
1000.00ROUNDQuebra empates arredondando metade a partir de zero (também conhecido como arredondamento comercial).Exemplos Resultado ROUND(1.15, 1)1,2 ROUND(-1.15, 1)-1,2
Exemplos
a. Use ROUND e estimativas
O exemplo a seguir mostra duas expressões que demonstram usando ROUND, o último dígito é sempre uma estimativa.
SELECT ROUND(123.9994, 3),
ROUND(123.9995, 3);
GO
Veja a seguir o conjunto de resultados.
----------- -----------
123.9990 124.0000
B. Use aproximações de ARREDONDAMENTO e arredondamento
O exemplo a seguir mostra arredondamentos e aproximações.
SELECT ROUND(123.4545, 2),
ROUND(123.45, -2);
Veja a seguir o conjunto de resultados.
---------- ----------
123.4500 100.00
C. Use 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
Veja a seguir o conjunto de resultados.
151.00
SELECT ROUND(150.75, 0, 1);
GO
Veja a seguir o conjunto de resultados.
150.00