IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

Incrémentation d'un champ float qui bug


Sujet :

SQL Procédural MySQL

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 250
    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.

  2. #2
    Expert confirmé

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Par défaut
    Bonjour!
    Je te propose de fixer le nombre de virgule apres la virgule a 2.

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 250
    Par défaut
    Merci, mais je ne vois pas comment faire! J'ai cherché, mais je pense que je cherche mal...

  4. #4
    Membre Expert
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rajouter un champ ID qui s'auto-incrémente
    Par Marc22 dans le forum Requêtes
    Réponses: 5
    Dernier message: 16/02/2010, 09h59
  2. incrémenter automatiquement un champ d'un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 8
    Dernier message: 01/09/2005, 08h42
  3. Update ou insert avec incrément d'un champ
    Par dany13 dans le forum ASP
    Réponses: 5
    Dernier message: 15/10/2004, 12h53
  4. Incrémentation d'un champ de la table
    Par viny dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/09/2003, 20h33
  5. [7RC3] Formatage de champs float
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 2
    Dernier message: 19/05/2003, 09h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo