Bonsoir,
Je fais une incrementation d'un champ de ma bdd, un champ float.
Seulement je ne fais que des ajout de 0,01, mais il arrive que le champ se mette à 0,004001 par exemple. Je ne comprend pas comment empecher ceci...
Merci d'avance.
Bonsoir,
Je fais une incrementation d'un champ de ma bdd, un champ float.
Seulement je ne fais que des ajout de 0,01, mais il arrive que le champ se mette à 0,004001 par exemple. Je ne comprend pas comment empecher ceci...
Merci d'avance.
Bonjour!
Je te propose de fixer le nombre de virgule apres la virgule a 2.
Merci, mais je ne vois pas comment faire! J'ai cherché, mais je pense que je cherche mal...![]()
C'est... normal. Les calculs avec des flottants sont approximés donc un écart (de l'ordre de grandeur de la précision du type utilisé) par rapport au résultat théorique peut toujours se produire. C'est valable aussi bien pour mysql que des "float" en C++, Java ou autre. Si tu veux plus de détails sur le pourquoi du comment c'est une problématique presque aussi vieille que l'informatique donc google devrait trouver divers articles.
Tu peux utiliser par exemple la syntaxe FLOAT(a,b) pour définir ta colonne afin d'arrondir au nombre de décimales que tu utilises. Ou alors utiliser le type DECIMAL pour réaliser des calculs exacts.
Pour les détails : http://dev.mysql.com/doc/refman/5.0/...ric-types.html
Partager