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

VBScript Discussion :

[VBS]probleme ds comparaison de nombres


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Par défaut [VBS]probleme ds comparaison de nombres
    Voici ma fonction pour classer ds des groupes des gens en fonction de la comparaison de leur moyenne avec celle des autres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    if consol(4)<(Left(famille5,4)- Left(SQR(ecart_type5),4)) then
                  niveau(5,1)=niveau(5,1)+1
                  elseif (Left(famille5,4)- Left(SQR(ecart_type5),4))<consol(4<Left(famille5,4) then
                  niveau(5,2)=niveau(5,2)+1
                  elseif Left(famille5,4)<consol(4)<(Left(famille5,4)+(1* Left(SQR(ecart_type5),4))) then
                  niveau(5,3)=niveau(5,3)+1
                  elseif (Left(famille5,4)+(1* Left(SQR(ecart_type5),4)))<consol(4)<(Left(famille5,4)+(2*Left(SQR(ecart_type5),4)))then
                  niveau(5,4)=niveau(5,4)+1
    end if
     
    avec:
    consol(4)=55
    famille5=48.3
    famille5-SQR(ecart_type5)=35.8
    famille5+SQR(ecart_type5)=60.8
    je devrais avoir niveau(5,3)=1 pourtant j'ai toujours niveau(5,2)=1
    ou est mon erreur?

    merci bcp

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 35
    Par défaut
    à vérifier (je suis un newbie) mais je pense que tu ne peux pas faire 2 tests en un seul if sans un and... Ce que tu fais 3 derniers tests. Pour tester si un nombre est compris entre deux valeurs, il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if a<b and b<c then...
    'si b est supérieur à a ET inférieur à c, alors...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Par défaut
    j'ai essayer et cela ne change rien

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Par défaut
    c'est vraiement bizarre!
    j'ai, pour simplifier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if  consol(0)<(Left(famille1,4)-Left(SQR(ecart_type1),4)) then
                  niveau(1,1)=niveau(1,1)+1
    elseif (Left(famille1,4)-Left(SQR(ecart_type1),4))<consol(0) and consol(0)<Left(famille1,4) then
                  niveau(1,2)=niveau(1,2)+1
    end if
     
    avec:
    consol(0)=14
    Left(famille1,4)=19.6
    Left(famille1,4)-Left(SQR(ecart_type1),4)=16.75
    donc je devrais avoir niveau(1,1)=1 et niveau(1,2)=""
    pourtant c'est l'inverse!!!!!!!!!!!

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 35
    Par défaut
    encore un truc tout con de newbie...
    consol(0) c'est un tableau ?
    si oui, il me semble que le premier élément c'est consol(1), non ?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Par défaut
    le prob vient de ce bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Left(famille1,4)-Left(SQR(ecart_type1),4)
    car si je le remplace par 16 cela marche!
    pourtant quand j'affiche le resultat de ce bout de code, j'ai bien 16,75 qui s'affiche!!!!!!!
    j'y comprend rien!!

  7. #7
    Membre émérite
    Avatar de Catbull
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    542
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 542
    Par défaut
    Comment sont déclarées tes variables?

    Là tu ne compares pas des nombres mais des chaines de caractères et c'est l'ordre lexicographique qui prend le dessus. Par exemple "100" < "11" est une condition qui retourne True.

    Il serait bon de convertir tes données et de caster explicitement tes variables (CLng, CDbl, CStr, ...) afin de ne pas comparer des choux et des carottes.

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

Discussions similaires

  1. [Dates] Probleme de comparaison de date
    Par mathieu77186 dans le forum Langage
    Réponses: 4
    Dernier message: 22/12/2005, 17h21
  2. Comparaison string nombre
    Par yanndublanche dans le forum Langage
    Réponses: 3
    Dernier message: 30/06/2005, 14h51
  3. Comparaison de nombre dans un tableau.
    Par slackjayo dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 29/04/2005, 17h21
  4. [MASM] Utiliser un .IF pour une comparaison de nombre signés
    Par Crisanar dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 24/11/2004, 16h32
  5. Probleme de compte le nombre de Recordset
    Par nemesys971 dans le forum Access
    Réponses: 5
    Dernier message: 27/10/2004, 15h23

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