Je n'arrive pas à comprendre le logiciel DECIMAL de MySQL. J'ai besoin que la rangée puisse contenir un nombre compris entre 00,0001 et 99,9999. Comment pourrais-je le structurer pour fonctionner comme ça?
Réponse
Trop de publicités?DOUBLE colonnes sont pas les mêmes que les colonnes DECIMAL, et vous obtenez en difficulté si vous utilisez une DOUBLE colonnes de données financières.
DOUBLE est en fait juste un double précision (64 bits au lieu de 32 bits) version de FLOTTER. Les nombres à virgule flottante sont approximatives des représentations des nombres réels et ils ne sont pas exactes. En fait, les chiffres simples comme 0.01 n'ont pas une représentation exacte en FLOAT ou DOUBLE types.
Les colonnes DECIMAL sont exact des représentations, mais ils prennent beaucoup plus d'espace pour un éventail beaucoup plus petite de numéros possibles. Pour créer une colonne capable de retenir les valeurs de 0,0001 à 99.9999 comme vous l'avez demandé, vous aurait besoin de la déclaration suivante
CREATE TABLE your_table
(
your_column DECIMAL(6,4) NOT NULL
);
La définition de la colonne suit le format DECIMAL(M, D) où M est le nombre maximum de chiffres (la précision) et D est le nombre de chiffres à droite du point décimal (de l' échelle).
Cela signifie que la commande précédente crée une colonne qui accepte les valeurs de -99.9999 à 99.9999. Il n'y a aucun moyen de créer un "unsigned" colonne DECIMAL, si vous n'avez pas besoin des valeurs négatives, vous n'avez pas à les utiliser.
Pour plus d'informations sur MySQL VIRGULE l' officiel docs sont toujours d'une grande ressource.
Gardez à l'esprit que l'ensemble de ces informations est vrai pour les versions de MySQL 5.1 et plus. Si vous utilisez les versions précédentes, vous devriez vraiment mettre à niveau.