Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/02/2008, 00h43   #1
Membre du Club
 
Inscription : novembre 2007
Messages : 236
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 236
Points : 40
Points : 40
Par défaut Incrémentation d'un champ float qui bug

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.
Dev@lone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2008, 08h24   #2
Rédacteur/Modérateur
 
Avatar de Siguillaume
 
Homme Guillaume SIGUI
Chef de projet en SSII
Inscription : août 2007
Messages : 2 388
Détails du profil
Informations personnelles :
Nom : Homme Guillaume SIGUI
Localisation : Côte d'Ivoire

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : août 2007
Messages : 2 388
Points : 3 177
Points : 3 177
Envoyer un message via Yahoo à Siguillaume Envoyer un message via Skype™ à Siguillaume
Bonjour!
Je te propose de fixer le nombre de virgule apres la virgule a 2.
__________________
Un gros problème est la somme de plusieurs petits problèmes.
Resolvez chacun des petits problèmes: vous aurez resolu le gros problème!
Mes tutos || Mon blog || Développeurs ivoiriens
Siguillaume est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2008, 12h39   #3
Membre du Club
 
Inscription : novembre 2007
Messages : 236
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 236
Points : 40
Points : 40
Merci, mais je ne vois pas comment faire! J'ai cherché, mais je pense que je cherche mal...
Dev@lone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2008, 18h41   #4
Membre Expert
 
Avatar de Sivrît
 
Inscription : février 2006
Messages : 953
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 953
Points : 1 189
Points : 1 189
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
Sivrît est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h40.


 
 
 
 
Partenaires

Hébergement Web