300 votes

Comment stocker des valeurs décimales dans le serveur SQL ?

J'essaie de déterminer le type de données décimales d'une colonne dans le serveur SQL. Je dois pouvoir stocker des valeurs comme 15,5, 26,9, 24,7, 9,8, etc.

J'ai assigné decimal(18, 0) au type de données de la colonne mais cela ne me permet pas de stocker ces valeurs.

Quelle est la bonne façon de procéder ?

540voto

marc_s Points 321990

DECIMAL(18,0) autorisera 0 chiffre après le point décimal.

Utilisez quelque chose comme DECIMAL(18,4) au lieu de cela, cela devrait faire l'affaire !

Cela vous donne un total de 18 chiffres dont 4 après la virgule (et 14 avant la virgule).

147voto

DForck42 Points 4421

Vous devez l'utiliser comme suit :

DECIMAL(m,a)

m est le nombre total de chiffres que votre décimale peut avoir.

a est le nombre maximal de décimales que vous pouvez avoir.

http://www.tsqltutorials.com/datatypes.php contient des descriptions pour tous les types de données.

48voto

Les paramètres de Decimal sont sa précision et son échelle ou, en langage normal, le nombre de chiffres que peut avoir un nombre et le nombre de chiffres que vous voulez avoir à droite de la virgule.

Donc si vous mettez PI en un Decimal(18,0) il sera enregistré comme 3 ?

Si vous mettez PI en un Decimal(18,2) il sera enregistré comme 3.14 ?

Si vous mettez PI en Decimal(18,10) être enregistré comme 3.1415926535 .

7voto

Raja Done Points 31

Dans la base de données MySQL decimal(4,2) ne permet de saisir que 4 chiffres au total. Comme vous le voyez dans decimal(4,2) Cela signifie que vous pouvez saisir un total de 4 chiffres, dont deux sont destinés à être conservés après le point décimal.

Ainsi, si vous saisissez 100.0 dans la base de données MySQL, une erreur du type "Out of Range Value for column" s'affichera.

Ainsi, vous ne pouvez entrer que dans cette fourchette : de 00.00 à 99.99.

3voto

Matthew Flaschen Points 131723

Les autres réponses sont correctes. En supposant que vos exemples reflètent toute la gamme des possibilités, ce que vous voulez, c'est DECIMAL(3, 1) . Ou, DECIMAL(14, 1) permet un total de 14 chiffres. C'est à vous de réfléchir à ce qui est suffisant.

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