Maison >base de données >tutoriel mysql >Quel type est décimal ?

Quel type est décimal ?

青灯夜游
青灯夜游original
2021-03-18 16:03:0573513parcourir

Decimal est un type de données précis qui existe dans MySQL, avec le format de syntaxe "DECIMAL(M,D)". Parmi eux, M est le nombre maximum de nombres (précision), et sa plage est de « 1 à 65 », et la valeur par défaut est 10 ; D est le nombre de chiffres à droite de la virgule décimale (échelle), et son La plage est de "0 à 30", mais elle ne doit pas dépasser M.

Quel type est décimal ?

L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.

Les types de nombres à virgule flottante pris en charge dans MySQL sont FLOAT, DOUBLE et DECIMAL. Le type DECIMAL est différent de FLOAT et DOUBLE est en fait stocké sous forme de chaîne. La plage de valeurs maximale possible de DECIMAL est la même que celle de DOUBLE, mais sa plage de valeurs effective est déterminée par les valeurs de M et D. Si M est modifié et D est fixe, sa plage de valeurs s'élargira à mesure que M grandira.

Pour les choses avec une précision relativement élevée, comme l'argent, il est recommandé d'utiliser le type décimal. Ne considérez pas float et double, car ils sont sujets aux erreurs. automatiquement converti en décimal.

DECIMAL a été introduit à partir de MySQL 5.1 et la syntaxe de déclaration de colonne est DECIMAL(M,D). Dans MySQL 5.1, la plage de valeurs des paramètres est la suivante :

  • M est le nombre maximum de nombres (précision). Sa plage est de 1 à 65 (dans les anciennes versions de MySQL, la plage autorisée est de 1 à 254) et la valeur par défaut de M est 10.

  • D est le nombre de chiffres à droite de la virgule décimale (échelle). Sa plage est de 0 à 30, mais elle ne doit pas dépasser M.

Explication : float occupe 4 octets, double occupe 8 octets et decimail(M,D) occupe M+2 octets.

Par exemple, la valeur maximale de DECIMAL(5,2) est 9999,99 car il y a 7 octets disponibles.

Donc M et D sont la clé pour affecter la plage de valeurs de DECIMAL(M, D)

Description du type Plage de valeurs (MySQL < 3.23) Plage de valeurs (MySQL > = 3,23)

DÉCIMAL(4,1) -9,9 à 99,9 -999,9 à 9999,9

DÉCIMAL(5,1) -99,9 à 999,9 -9999,9 à 99999,9

DÉCIMAL (6,1) -999,9 à 9999,9 -99999,9 à 999999,9

DECIMAL(6,2) -99,99 à 999,99 -9999,99 à 99999,99

DECIMAL(6,3) -9,999 à 99,999 - 999.999 à 9999.999

(Tutoriel recommandé : Tutoriel vidéo MySQL)

La plage de valeurs du type DECIMAL donné dépend de la version du type de données MySQL. Pour les versions antérieures à MySQL3.23, chaque valeur de la colonne DECIMAL(M, D) occupe M octets, et le signe (si nécessaire) et le point décimal sont inclus dans les M octets. Par conséquent, les colonnes de type DECIMAL(5, 2) ont des valeurs comprises entre -9,99 et 99,99 car elles couvrent toutes les valeurs possibles à 5 caractères.

# Dans MySQL 3.23 et versions ultérieures, la plage de valeurs de DECIMAL(M, D) est égale à la plage de valeurs de DECIMAL(M + 2, D) dans les versions antérieures.

Conclusion :

Lorsque la valeur est dans sa plage de valeurs et qu'il y a trop de décimales, les décimales seront directement tronquées.

Si la valeur est en dehors de sa plage de valeurs, remplissez-la avec la valeur la plus grande (la plus petite).

Pour plus de connaissances sur la programmation, veuillez visiter : Vidéo de programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn