Partilhar via


REDONDO (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade de Análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de Dados SQL no Microsoft Fabric

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

Transact-SQL convenções de sintaxe

Sintaxe

ROUND ( numeric_expression , length [ , function ] )

Arguments

numeric_expression

Uma expressão do tipo de dado numérico exato ou numérico aproximado.

length

A precisão com que numeric_expression deve ser arredondada. O comprimento deve ser uma expressão do tipo tinyint, smallint ou int. Quando o comprimento é um número positivo, numeric_expression é arredondado para o número de posições decimais especificado pelo comprimento. Quando o comprimento é um número negativo, numeric_expression é arredondado no lado esquerdo do ponto decimal, conforme especificado pelo comprimento.

função

O tipo de operação a realizar. A função deve ser tinyint, smallint ou int. Quando a função é omitida ou tem um valor de 0 (padrão), numeric_expression é arredondada. Quando um valor diferente de 0 é especificado, numeric_expression é truncado.

Tipos de devolução

Devolve os seguintes tipos de dados.

Resultado da expressão Tipo de retorno
tinyint int
smallint int
int int
bigint bigint
Categoria Decimal e Numérica (P, S) decimal(p, s)
Moeda e categoria de dinheiro pequeno dinheiro
Flutuante e categoria real float

Observações

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

    Example Result
    ROUND(748.58, -4) 0
  • ROUND devolve um numeric_expression arredondado, independentemente do tipo de dado, quando o comprimento é um número negativo.

    Examples Result
    ROUND(748.58, -1) 750,00
    ROUND(748.58, -2) 700,00
    ROUND(748.58, -3) Resulta num transbordo aritmético, porque 748,58 por defeito é decimal(5, 2), que não pode devolver 1000.00.
  • Para arredondar para quatro dígitos, altere o tipo de dados da entrada. Por exemplo:

    SELECT ROUND(CAST (748.58 AS DECIMAL (6, 2)), -3);
    

    Aqui está o conjunto de resultados.

    1000.00
    
  • ROUND Quebra o empate arredondando metade afastando-se do zero (também conhecido como arredondamento comercial).

    Examples Result
    ROUND(1.15, 1) 1.2
    ROUND(-1.15, 1) -1.2

Examples

A. Usar ROUND e estimativas

O exemplo seguinte 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

Aqui está o conjunto de resultados.

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

B. Usar aproximações de ROUND e arredondamento

O exemplo seguinte mostra arredondamento e aproximações.

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

Aqui está o conjunto de resultados.

----------  ----------
123.4500    100.00

C. Use ROUND para truncar

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

SELECT ROUND(150.75, 0);
GO

Aqui está o conjunto de resultados.

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

Aqui está o conjunto de resultados.

150.00