Como posso interpretar precisão e escala de um número em uma base de dados?

tenho a seguinte coluna especificada numa base de dados: decimal (5,2)

Como se interpreta isto?

de acordo com as propriedades na coluna, tal como vistas no SQL Server Management studio, posso ver que significa: decimal(precisão numérica, escala numérica).

O que significa precisão e escala em termos reais?

seria fácil interpretar isto como uma casa decimal com 5 dígitos e duas casas decimais. places...ie 12345, 12

P. S. capaz de determinar a resposta correta de um colega, mas teve grande dificuldade em encontrar uma resposta online. Como tal, eu gostaria de ter a pergunta e resposta documentada aqui em stackoverflow para referência futura.

Author: fredt, 2010-03-04

3 answers

A precisão numérica refere-se ao número máximo de dígitos que estão presentes no número.

Ie 1234567,89 tem uma precisão de 9

A escala numérica refere-se ao número máximo de casas decimais

Ie 123456.789 tem uma escala de 3

Assim, o valor máximo permitido para as casas decimais (5,2) é 999.99

 424
Author: mezoid, 2013-01-27 16:03:19

A precisão de um número é o número de dígitos.

Escala de um número é o número de dígitos após o ponto decimal.

O que é geralmente implícito ao definir a precisão e escala na definição de campo é que eles representam Os valores máximos.

Exemplo, um campo decimal definido com precision=5 e scale=2 permitiria os seguintes valores:

  • 123.45 (p=5,s=2)
  • 12.34 (p=4,s=2)
  • 12345 (p=5,s=0)
  • 123.4 (p=4,s=1)
  • 0 (p=0,s=0)

Os seguintes valores não são permitidos ou causariam uma perda de Dados:

  • 12.345 (p=5,s=3) => pode ser truncado em 12.35 (p=4, s=2)
  • 1234.56 (p=6,s=2) => pode ser truncado em 1234.6 (p = 5, s = 1)
  • 123.456 (p=6,s=3) => pode ser truncado em 123.46 (p = 5, s = 2)
  • 123450 (p=6,s=0) = > fora da Gama

Note que a gama é geralmente definida pela precisão: |value| < 10^p ...

 96
Author: boumbh, 2013-03-20 10:14:32

Precisão, Escala e comprimento na documentação do SQL Server 2000 lê-se:

Precisão é o número de algarismos num número. Escala é o número de dígitos à direita do ponto decimal em um número. Por exemplo, o número 123.45 tem uma precisão de 5 e uma escala de 2.

 31
Author: Chris, 2014-09-16 18:56:08