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

Requêtes MySQL Discussion :

calcule donne mauvais résultat


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 128
    Points : 63
    Points
    63
    Par défaut calcule donne mauvais résultat
    Bonjour,

    Je voudrai que Mysql efectue un "petit" calcul, je donne tous de suite la requéte que j'ai faite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE VVT SET `ms`=(`hz`*1.055+0.666*2^(-1/(20*(`hz`)+0.0001)))
    ms et hz sont de type double.

    Mais le résultat n'est pas bon.
    Par exemple, quand 'hz' veau 0 il me mes 'ms' à 1.22855315530906e+19 au lieut de 0
    'hz' à 1.137 me retourne 2.5323 au lieut de 1.8

    J'ai sorti la formule tél quelle d'une feuille Excel, je supose que MySQL ne l'intérpréte pas exactement comme il faut??

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 040
    Points : 23 795
    Points
    23 795
    Par défaut
    Bonjour,

    Effectivement, il faut modifier un peu la formule sous MySQL pour retrouver le même résultat.
    Notamment, il faut remplacer le caractère ^ par la fonction POWER(x, y) qui équivaut à x^y.
    Plus d'infos dans la documentation MySQL.

    ced

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 128
    Points : 63
    Points
    63
    Par défaut
    merci, sa avance, mais s'est pas encore sa :-(

    j'ai sa comme requêtes maintenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE VVT SET `ms`=POWER((`hz`*1.055+0.666*2), (-1/(20*`hz`+0.0001)))
    avec hz à 0 j'ai bien 0
    mais avec hz à 1 j'obtient 0.957... à la palce de 1.7
    ??

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    D'après la première formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE VVT SET `ms`=(`hz`*1.055+0.666*2^(-1/(20*(`hz`)+0.0001)))
    on a 2 puissance quelque chose.
    D'après la deuxième :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE VVT SET `ms`=POWER((`hz`*1.055+0.666*2), (-1/(20*`hz`+0.0001)))
    on a (`hz`*1.055+0.666*2) puissance quelque chose !
    Donc c'est pas la même chose !
    Je vous conseille de mettre les parenthèse au bon endroit sur la formule de départ et de bien transposer le calcul ensuite en langage SQL.

  5. #5
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 128
    Points : 63
    Points
    63
    Par défaut
    J'avais oublier que la puissance etait prioritaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE VVT SET `ms`=(`hz`*1.055+0.666*POWER(2,(-1/(20*(`hz`)+0.0001))))
    S'est bon, sa marche, merci beaucoup

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

Discussions similaires

  1. [AC-2010] Champ calculé "DiffDate" retourne mauvais résultat
    Par lptht dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 19/01/2015, 16h20
  2. Mauvais résultat après calcul de 2 nombres
    Par keusty78 dans le forum Débuter
    Réponses: 17
    Dernier message: 08/10/2010, 19h02
  3. Réponses: 6
    Dernier message: 03/02/2010, 22h39
  4. Calcul à partir des résultats d'une requète
    Par Sendo dans le forum Access
    Réponses: 1
    Dernier message: 29/09/2005, 17h46
  5. Mauvais résultat aprés une formule de calcul complexe
    Par poufouille dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/12/2004, 00h12

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