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

MySQL Discussion :

stockage des chiffres significatifs en BDD


Sujet :

MySQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut stockage des chiffres significatifs en BDD
    Bonjour à tous,

    J'ai utilisé une fonction pour le calcul des moyennes à deux chiffres significatifs ! J'ai fait des tests et ça affiche bien ce que j'attends.

    Mon soucis est que mes moyennes sont stockées dans la base de données et elle sont corrects sauf dans le cas où j'ai un nombre dont la longueur est 1, genre "2". Avec ma fonction, j'obtiendrai "2.0". Si je fais un echo je vois bien "2.0" mais dans phpMyAdmin, ça enregistre "2" ? Il ne rajoute pas ".0" !! et pourtant le type de mon champ est float.

    Quelqu'un a une idée ?

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut chiffres significatifs
    Bonjour à tous,

    J'ai même essayer de modifier le type de mon champ (CHAR) et ça ne fonctionne pas !!! remarque que j'ai besoin de la moyenne pour calculer autre chose !!!
    Merci d'avance

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Utilise le type ce colonne "DECIMAL".

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Le problème n'est pas le type numérique choisi côté MySQL. Que ce soit en INTEGER, DECIMAL ou FLOAT : 2 = 02 = 000002 = 2.0 = 2.0000000.

    Votre problème relève du formatage du nombre et doit se faire côté client (php). Récupérez votre nombre MySQL et utilisez : sprintf ou number_format.

    edit : Vous pouvez aussi faire la conversion avec MySQL lors de la restitution (SELECT) mais ne choisissez surtout pas de stocker vos nombre en varchar.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci pour vos réponses.

    @jeca : decimal n'est pas une bonne solution car je dois préciser le nombre de chiffres après la virgule ! Dans mon cas c'est variable mais il faut juste deux chiffres significatifs.
    exemple :
    2 devient 2.0
    0.0504232 devient 0.050

    @vmolines : Je vais tester de suite votre solution et je vous tiendrez au courant.

    Encore merci à vous deux

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Salut,

    number_format ou sprintf ne résout pas le soucis ces fonctions sont utilisées pour l'affichage ! L'affichage ne me pose pas de problème. quand je fais echo, j'ai bien "2.0".

    Les moyennes calculées sont stockées dans la base de données pour ensuite exporter un fichier csv pour une autre utilisation ! est c'est en base de données que ça ne stocke pas "2.0" !

    Je ne sais pas si je suis claire ??

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Je le répète en base de données et d'un point de vue mathématique 2 = 2.0. C'est le client phpmyadmin qui formate 2.0 comme quand vous faites un echo. Vous devez faire le même travail de formatage des colonnes numériques en texte pour générer votre csv.

    Dans tous les cas ce n'est pas un problème de base de données et il faudrait poser votre question dans le forum php.

Discussions similaires

  1. stockage des BDD "MySqlServer"
    Par M E H D I dans le forum JDBC
    Réponses: 1
    Dernier message: 07/02/2009, 18h35
  2. calculer des chiffres pour envoyer dans la bdd
    Par mecmec dans le forum Flash
    Réponses: 1
    Dernier message: 04/07/2007, 09h10
  3. Stockage de données cartographiques en BDD
    Par Mack.51 dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 16/06/2004, 12h48
  4. [Preferences] Stockage des options
    Par Yan83 dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 03/05/2004, 10h38
  5. Fichier log des requêtes d'une bdd
    Par Sub0 dans le forum Administration
    Réponses: 4
    Dernier message: 22/03/2004, 14h12

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