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

JavaScript Discussion :

Bug variable dans condition


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Bug variable dans condition
    Bonjour,
    Je suis en proie à un bug incompréhensible.
    Je précise que je suis autodidacte en javascript mais que j'ai de bonnes bases en programmation (C).

    Nous sommes dans une fonction JS qui prend en paramètre la variable "vivit"
    Le tableau "tableau" est une variable globale...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        alert (tableau[10])
        alert (vivit)
        alert(vivit > tableau[10])
     
           if (vivit > tableau[10])
           {
              alert ("RECORD");
           }

    Lorsque
    tableau[10] = 297.45 (initialiser à l'extérieur de la fonction)
    vivit = 47.58 (paramètre de la fonction

    J'obtiens :
    alert = 297.45 // OK
    alert = 47.58 // OK
    alert = true // Ce qui est faux
    alert = RECORD //Ce qui est faux aussi...


    ****************
    Ca me semble vraiment invraisemblable....

    Après fouille, j'ai remarqué que si j'affectais à tableau [10] la valeur au début, ça refonctionnait...
    tableau[10] = 297.45

    Pourtant la fonction alert du premier exemple me donne la preuve que cette valeur était déjà bien présente....

    Je suis perdu.. A coté de quoi je suis passé ?

    Cordialement

  2. #2
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    c'est effectivement étrange, parce que même si ton vivit ou ton tableau[10] étaient de types différents (exemple string et entier) la conversation devrait se faire automatiquement et correctement !

    essaye de quand même regarder les types avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    alert(typeof vivit);
    alert(typeof tableau[10]);

  3. #3
    Membre habitué Avatar de omar24
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 159
    Points : 172
    Points
    172
    Par défaut
    essaye de tester alert(vivit-tableau[10]); et vois ce qu'il va donner

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    attention à la définition des valeurs, justement;

    vivit et tableau[10] sont visiblement interprétés comme des chaînes;

    c'est logique si ce sont des valeurs de champ récupérées sans conversion;

  5. #5
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    +1 javatwister

    effectivement si les 2 valeurs sont des strings, la conversion ne se fait pas ! ( la comparaison effectue une conversion automatique pour transformer le string en Number seulement si l'une des 2 valeurs est un déjà Number)

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Merci beaucoup à tous !!!

    Voilà qui me redonne des pistes à explorer !
    Je ne pourrais tester cela que ce soir mais je vous tiendrai au courant.

    J'utiliserai donc la fonction :
    parseFloat()

    avant la condition.


    Cordialement

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Vous êtes des as !

    Tout fonctionne !

    Merci beaucoup !

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

Discussions similaires

  1. Bug variable dans fonction
    Par etiennedewa dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/06/2013, 16h27
  2. utilisation des noms des variables dans les conditions
    Par ankhaline dans le forum SAS Base
    Réponses: 4
    Dernier message: 14/08/2010, 14h34
  3. variable dans la condition d'une requete
    Par .TKrD. dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 30/04/2009, 11h22
  4. Réponses: 6
    Dernier message: 06/02/2008, 16h19
  5. [VBA-E] Insersion Variable dans condition
    Par D@rkneo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/05/2007, 11h51

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