Pb d'enrigistrement avec decimal()

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Pb d'enrigistrement avec decimal()

par alcofribas » 06 sept. 2007, 20:09

Merci beaucoup Sékiltoyai. J'avais mal lu la doc.

par Sékiltoyai » 06 sept. 2007, 16:30

LA DOC !!!
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]

Un nombre à virgule flottante littéral. Il se comporte comme une colonne de type CHAR: ``littéral'' (``unpacked'') signifie que le nombre est stocké sous forme de chaîne : chaque caractère représente un chiffre. La virgule décimale et le signe moins ‘-’ des nombres négatifs ne sont pas comptés dans M (mais de l'espace leur est réservé). Si D vaut 0, les valeurs n'auront pas de virgule décimale ou de partie décimale. L'intervale de validité du type DECIMAL est le même que DOUBLE, mais le vrai intervalle de validité de DECIMAL peut être restreint par le choix de la valeur de M et D. Si UNSIGNED est spécifié, les valeurs négatives sont interdites.

Si D est omis, la valeur par défaut est 0. Si M est omis, la valeur par défaut est 10.

Avant MySQL Version 3.23, l'argument M devait inclure l'espace nécessaire pour la virgule et le signe moins.
Ce qui veut dire que c'est un comportement totalement normal pour un champ decimal(4,2), il y a 4 digits au total, dont 2 digits pour la partie décimale, ce qui fait que le nombre maximal représentable est 99,99. Tous les nombres au dessus de 100 sont donc ramenés au maximum représentable, à savoir 99,99…

Pb d'enrigistrement avec decimal()

par alcofribas » 06 sept. 2007, 15:42

Bonjour à tous,

J'ai un problème avec une colonne de ma table MySQL lors de l'insertion de données.
Cette colonne a pour format decimal(4,2).

Lorsque j'insère un enregistrement avec deux décimales avant la virgule, ça va, sinon lorsque le nombre est supérieur à 100, l'enregistrement indique 99,99.

Quelqu'un sait-il ce qui peut clocher ?

Merci d'avance de votre aide.