Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Base de Dados SQL do Azure
Instância Gerida do Azure SQL
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Ponto de Extremidade de Análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base de Dados SQL no Microsoft Fabric
Tipos de dados de número aproximado para uso com dados numéricos de ponto flutuante. Os dados de ponto flutuante são aproximados; Portanto, nem todos os valores no intervalo de tipos de dados podem ser representados exatamente. O sinónimo ISO de real é float(24).
Transact-SQL convenções de sintaxe
Syntax
float [ (n) ] Onde n é o número de bits que são usados para armazenar a mantissa do número float em notação científica e, portanto, dita a precisão e o tamanho do armazenamento. Se n for especificado, deve ser um valor entre 1 e 53. O valor padrão de n é 53.
| valor n | Precision | Tamanho de armazenamento |
|---|---|---|
| 1-24 | 7 dígitos | 4 bytes |
| 25-53 | 15 dígitos | 8 bytes |
Note
O SQL Server trata n como um dos dois valores possíveis. Se 1<=n<=24, n é tratado como 24. Se 25<=n<=53, n é tratado como 53.
O tipo de dados float[(n)] do SQL Server está em conformidade com o padrão ISO para todos os valores de n de 1 a 53. O sinónimo de dupla precisão é float(53).
Remarks
| Tipo de dados | Range | Armazenamento |
|---|---|---|
| float | - 1.79E+308 a -2.23E-308, 0 e 2.23E-308 a 1.79E+308 | Depende do valor de n |
| real | - 3.40E + 38 a -1.18E - 38, 0 e 1.18E - 38 a 3.40E + 38 | 4 Bytes |
Os tipos de dados float e real são conhecidos como tipos de dados aproximados. O comportamento de float e real segue a especificação IEEE 754 em tipos de dados numéricos aproximados. Para entender como o compilador Microsoft Visual C (MSVC) usa o padrão IEEE 754, consulte IEEE Floating-Point Representation
Os tipos de dados numéricos aproximados não armazenam os valores exatos especificados para muitos números; eles armazenam uma aproximação do valor. Para algumas aplicações, a pequena diferença entre o valor especificado e a aproximação armazenada não é relevante. Para outros, porém, a diferença é importante. Devido à natureza aproximada dos tipos de dados flutuantes e reais, não use esses tipos de dados quando o comportamento numérico exato for necessário. Exemplos que exigem valores numéricos precisos são dados financeiros ou comerciais, operações que envolvem arredondamentos ou verificações de igualdade. Nesses casos, use os tipos de dados inteiro, decimal, numérico, dinheiro ou smallmoney.
Evite usar colunas flutuantes ou reais nas condições de pesquisa da cláusula WHERE, especialmente os operadores = e <> . É melhor limitar colunas flutuantes e reais a > comparações < .
Convertendo float e dados reais
Os valores de float são truncados quando são convertidos em qualquer tipo inteiro.
Quando você deseja converter de float ou real para dados de caracteres, usar a função STR string normalmente é mais útil do que CAST( ). O motivo é que STR() permite mais controle sobre a formatação. Para obter mais informações, consulte STR (Transact-SQL) e Functions (Transact-SQL).
Antes do SQL Server 2016 (13.x), a conversão de valores flutuantes em decimais ou numéricos era restrita apenas a valores de precisão de 17 dígitos. Qualquer valor flutuante inferior a 5E-18 (quando definido usando a notação científica de 5E-18 ou a notação decimal de 0,0000000000000000005) arredonda para baixo para 0. Isso não é mais uma restrição a partir do SQL Server 2016 (13.x).