304 votes

Comment interpréter la précision et l'échelle d'un nombre dans une base de données?

J'ai la suite de la colonne spécifiée dans une base de données: decimal(5,2)

Comment interpréter cela?

Selon les propriétés de la colonne, tel que vu dans SQL Server Management studio, je peux voir que cela signifie: décimal(précision Numérique, échelle Numérique).

Ce n'précision et de la moyenne de l'échelle en termes réels?

Il serait facile à interpréter cela comme un nombre décimal avec 5 chiffres et deux décimales, les lieux...c'est à dire 12345.12

P. S. j'ai été en mesure de déterminer la réponse correcte à partir d'un collègue, mais avait beaucoup de difficulté à trouver une réponse en ligne. En tant que tel, j'aimerais avoir la question et la réponse documentée ici sur stackoverflow pour référence future.

499voto

mezoid Points 10293

La précision numérique fait référence au nombre maximal de chiffres présents dans le nombre.

à savoir 1234567.89 a une précision de 9

L'échelle numérique fait référence au nombre maximum de décimales

c.-à-d. 123456.789 a une échelle de 3

Ainsi, la valeur maximale autorisée pour la décimale (5,2) est 999,99

114voto

boumbh Points 284

La précision d'un nombre est le nombre de chiffres.

À l'échelle d'un nombre est le nombre de chiffres après le point décimal.

Ce qui est généralement implicite lorsque le réglage de précision et l'échelle sur la définition d'un champ, c'est qu'ils représentent le maximum des valeurs.

Exemple, un champ décimal défini avec precision=5 et scale=2 permettrait à l'une des valeurs suivantes:

  • 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)

Les valeurs suivantes ne sont pas autorisées ou serait la cause d'une perte de données:

  • 12.345 (p=5,s=3) => pourrait être tronqué en 12.35 (p=4,s=2)
  • 1234.56 (p=6,s=2) => pourrait être tronqué en 1234.6 (p=5,s=1)
  • 123.456 (p=6,s=3) => pourrait être tronqué en 123.46 (p=5,s=2)
  • 123450 (p=6,s=0) => hors de gamme

Noter que la gamme est généralement défini par la précision: |value| < 10^p ...

37voto

Chris Points 1646

Precision, Scale et Length dans la documentation SQL Server 2000 indique:

La précision est le nombre de chiffres d'un nombre. Echelle est le nombre de chiffres à droite de la virgule dans un nombre. Par exemple, le nombre 123.45 a une précision de 5 et une échelle de 2.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X