Partage via


Nombres décimaux

Les chiffres décimaux des types de données décimales et numériques sont définis comme le nombre maximal de chiffres à droite de la virgule décimale, ou l’échelle des données. Pour les colonnes ou paramètres à virgule flottante approximatives, l’échelle n’est pas définie, car le nombre de chiffres à droite de la virgule décimale n’est pas fixe. Pour les données datetime ou interval qui contiennent un composant de secondes, les chiffres décimaux sont définis comme le nombre de chiffres à droite de la virgule décimale dans le composant secondes des données.

Pour les types de données SQL_DECIMAL et SQL_NUMERIC, l’échelle maximale est généralement identique à la précision maximale. Toutefois, certaines sources de données imposent une limite distincte à l’échelle maximale. Pour déterminer les échelles minimales et maximales autorisées pour un type de données, une application appelle SQLGetTypeInfo.

Les chiffres décimaux définis pour chaque type de données SQL concis sont indiqués dans le tableau suivant.

Type SQL des chiffres décimaux
Tous les types caractères et binaires[a] n/a
SQL_DECIMAL
SQL_NUMERIC
Nombre défini de chiffres à droite de la virgule décimale. Par exemple, l’échelle d’une colonne définie comme NUMERIC(10,3) est 3. Il peut s’agir d’un nombre négatif pour prendre en charge le stockage de très grands nombres sans utiliser la notation exponentielle ; par exemple, « 12000 » peut être stocké sous la forme « 12 » avec une échelle de -3.
Tous les types numériques exacts autres que SQL_DECIMAL et SQL_NUMERIC[a] 0
Tous les types de données approximatifs[a] n/a
SQL_TYPE_DATE et tous les types d’intervalles sans composant secondes[a] n/a
Tous les types datetime sauf SQL_TYPE_DATE, et tous les types d’intervalles avec un composant secondes Nombre de chiffres à droite de la virgule décimale dans la partie secondes de la valeur (fractions de secondes). Ce nombre ne peut pas être négatif.
SQL_GUID n/a

[a] L’argument DecimalDigits de SQLBindParameter est ignoré pour ce type de données.

Les valeurs retournées pour les chiffres décimaux ne correspondent pas aux valeurs d’un champ de descripteur. Les valeurs peuvent provenir du champ SQL_DESC_SCALE ou SQL_DESC_PRECISION, selon le type de données, comme indiqué dans le tableau suivant.

Type SQL Champ de descripteur correspondant à

Décimaux
Tous les types caractères et binaires n/a
Tous les types numériques exacts SCALE
SQL_BIT n/a
Tous les types numériques approximatifs n/a
Tous les types datetime PRECISION
Tous les types d’intervalles avec un composant secondes PRECISION
Tous les types d’intervalles sans composant de secondes n/a