cs_fabrice69
Messages postés
1765
Date d'inscription
jeudi 12 octobre 2000
Statut
Membre
Dernière intervention
11 décembre 2013
5
18 févr. 2005 à 20:27
Je retire ce que j'ai dit pour le premier chiffre, il s'agit de la précision voulue et non du nombre de chiffre avant la virgule (chuis fatigué moi ;) )
cf aide msdn :
----
Précision, échelle et longueur
La précision est le nombre de chiffres qui composent un nombre. L'échelle est le nombre de chiffres à droite du point décimal (notre virgule) dans un nombre. Par exemple, le nombre 123,45 a une précision de 5 et une échelle de 2.
La précision maximum par défaut des types de données numeric et decimal est 38. Dans les versions précédentes de SQL Server, la valeur maximum par défaut était de 28.
La longueur pour un type de données numérique est le nombre d'octets utilisés pour stocker le nombre. La longueur d'une chaîne de caractères ou d'un type de données Unicode est le nombre de caractères. La longueur des types de données binary, varbinary et image est le nombre d'octets. Par exemple, un type de données int peut contenir 10 chiffres, il est stocké sur 4 octets et il n'accepte pas le point décimal. Le type de données int a une précision de 10, une longueur de 4, et une échelle de 0.
Lors de la concaténation de deux expressions char, varchar, binary ou varbinary, la longueur de l'expression obtenue est la somme des longueurs des deux expressions sources ou 8000 caractères, en fonction de la valeur la moins élevée.
Lors de la concaténation de deux expressions de type nchar ou nvarchar, la longueur de l'expression obtenue est la somme des longueurs des deux expressions sources ou 4000 caractères, en fonction de la valeur la moins élevée.
La précision et l'échelle des types de données numériques à part decimal sont fixes. Si un opérateur arithmétique se rapporte à deux expressions du même type, le résultat est également du même type avec la précision et l'échelle définies pour ce type. Si un opérateur se rapporte à deux expressions de types de données numériques différents, les règles de priorité des types de données déterminent le type du résultat. Le résultat a la précision et l'échelle correspondant à son type de données.
Le tableau suivant détaille le calcul de la précision et de l'échelle du résultat d'une opération lorsque celui-ci est de type decimal. Le résultat est de type decimal si :
<LI>Les deux expressions sont de type decimal.
<LI>une expression est de type decimal et l'autre est d'un type de degré de priorité moins élevé. </LI>
Les opérandes sont notés e1 et e2 (expressions) avec respectivement, les précisions p1 et p2 et les échelles s1et s2. La précision et l'échelle d'une expression d'un autre type que decimal sont celles définies pour cet autre type.
Opération |
Précision du résultat |
Échelle du résultat * |
----
e1 + e2,
max(s1, s2) + max(p1-s1, p2-s2) + 1,
max(s1, s2),
----
e1 - e2,
max(s1, s2) + max(p1-s1, p2-s2),
max(s1, s2),
----
e1 * e2,
p1 + p2 + 1,
s1 + s2,
----
e1 / e2,
p1 - s1 + s2 + max(6, s1 + p2 + 1),
max(6, s1 + p2 + 1)
* La précision et l'échelle du résultat ne peuvent pas dépasser 38. Si la précision du résultat dépasse 38, l'échelle correspondante est diminuée pour empêcher la troncature de la partie intégrale du résultat.
<!--END-->----
Romelard Fabrice (Alias F___)