>> Tecnologia Eletrônica >  >> Casa Inteligente >> Vida Inteligente

Como Converter Valores Double para Inteiro no SQL Server

Números de ponto flutuante de precisão dupla são representados pelo tipo de dados float no SQL Server. Ocasionalmente, pode ser necessário converter um número de ponto flutuante para um inteiro. Isso é feito usando a função T-SQL CAST(). A função CAST() não arredonda automaticamente os decimais para cima ou para baixo, mas pode ser combinada com a função ROUND() se o arredondamento for desejado.

Conversão Simples (Sem Arredondamento)

SELECT CAST(<float> AS INT);

Substitua <float> por qualquer número de ponto flutuante. A parte decimal será simplesmente truncada.

Conversão com Arredondamento

SELECT CAST(ROUND(CAST(<float> AS DECIMAL(10,3)), 0) AS INT);

Esta consulta primeiro converte o float para DECIMAL(10,3), arredonda para zero casas decimais com ROUND() e depois converte para INT.

Dica

A função CONVERT() pode ser usada no lugar de CAST(), se preferir.

Aviso

  • A função ROUND() retorna um tipo de dado numérico. Se você não converter o float para decimal dentro da chamada da função, um erro de estouro aritmético pode ocorrer em certas situações quando o número arredondado resulta em mais dígitos que o argumento original.
  • Tentar converter um número menor que -2.147.483.647 ou maior que 2.147.483.647 resultará em erro de estouro aritmético, pois o valor está fora do intervalo do tipo de dado INT.