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…
LA DOC !!!
[quote="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.[/quote]
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…