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

Flash Discussion :

[FLASH MX2004] Arrondi ??


Sujet :

Flash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité1
    Invité(e)
    Par défaut [FLASH MX2004] Arrondi ??
    Dans un fichier txt j'ai plusieurs variables qu'il me faut tester...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    &valeur_12=4.9988&
    &valeur_32=1.1245&
    etc...
    le valeur_32 peut prendre plusieurs valeur de 1 en 1
    1.1245
    2.1245
    3.1245
    ...

    j'ai mis dans la flame1 pour lire le .txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var verifvars = new LoadVars();
    verifvars.load("variables.txt");
    L'orsque je teste cette valeur en faisant un switch, des if, ou des elseif le test marche pour 0.1245 et 1.1245 mais pas pour 2.1245 et les valeurs qui suivent 3.1245 etc...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if (verifvars.valeur_32 == 0.1245)
    {
       gotoAndStop(5);
    }
    if (verifvars.valeur_32 == 1.1245)
    {
       gotoAndStop(6);
    }
    if (verifvars.valeur_32 == 2.1245)
    {
       gotoAndStop(7);
    }
    Je suis complètement dépassé ... ça vient d'un arrondi ?
    Que puis-je faire ?

    Merci d'avance

  2. #2
    Membre expérimenté
    Avatar de Strab
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 338
    Par défaut
    T'es tu assuré de la bonne valeur de valeur_32 ? Peut-être un bout de code qui initialise cette variable ?

    Sinon à ma connaissance Flash ne fait pas ce genre d'arrondi.

  3. #3
    pom
    pom est déconnecté
    Membre éprouvé
    Inscrit en
    Février 2003
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 120
    Par défaut Re: [FLASH MX2004] Arrondi ??
    Ca peut effectivement provenir d'un problème d'arrondi. Dans ce cas, tu peux toujours contourner le problème de cette façon (par exemple):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    switch (Math.floor(verifvars.valeur_32)) {
       case 0: gotoAndStop(5); break ;
       case 1: gotoAndStop(6); break ;
       case 2: gotoAndStop(7); break ;
       default: trace ("Pas bon") ;
    }

  4. #4
    Invité1
    Invité(e)
    Par défaut
    quand je met
    dans le fichier txt 0.1245 le test avec 0.1245 marche
    dans le fichier txt 1.1245 le test avec 1.1245 marche
    dans le fichier txt 2.1245 le test avec 2.1245 ne marche pas
    le valeur est bien de 2.1245 car c'est elle que est dans le fichier .txt

  5. #5
    pom
    pom est déconnecté
    Membre éprouvé
    Inscrit en
    Février 2003
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 120
    Par défaut
    Déjà à la base ce qui me surprend, c'est que ça marche avec les 2 premiers puisqu'a priori tu compares un entier avec une chaîne de caractères, mais bon...

    Sinon, il te plaît pas, mon petit bout de code?

  6. #6
    Invité1
    Invité(e)
    Par défaut
    bon a prioris je crois comprendre d'ou ca vient...
    Lorsque le logiciel importe les variables il doit les convertir pour lui en float ... et pratique un arrondi selon les valeurs

    D'ou les premieres valeurs tombaient par chance a la valeur exacte 1.1245 et 0.1245 en float mais 2.1245 par exemple doit etre code en interne comme 2.1245000000000000000001...

    J'ai finalement trouvé que si je verifie que 2.1244 < valeur_32 < 2.1246 le test marche..
    voila il faut juste mettre une fourchette.


    Ps: ton bout de code est pas mal mais tu remarquera... que j'ai posté mon message en meme temps que toi c'est pour ca que je l'ai pas vu...
    Et il me faut vraiment verifier à 4 chifres aprés la virgule merci quand meme... case1, 2, 3, 4, c'est pas suffisant. Merci quand même

    Sujet a moitié résolu arrondi à RESOLU

  7. #7
    pom
    pom est déconnecté
    Membre éprouvé
    Inscrit en
    Février 2003
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 120
    Par défaut
    Citation Envoyé par doriss
    Et il me faut vraiment verifier à 4 chifres aprés la virgule merci quand meme... case1, 2, 3, 4, c'est pas suffisant. Merci quand même
    Bon, ça doit sûrement venir du fait que je ne connais pas le projet dans sa globalité, mais vu la manière dont tu as présenté la problème (des nombres qui vont de 1 en 1), il est tout à fait possible de faire le test sur la partie entière de ton nombre (ce que je fais avec la fonction Math.floor). Mais bon, si ça marche maintenant...

  8. #8
    Invité1
    Invité(e)
    Par défaut
    J'ai peut etre pas ete assez explicite ...
    Dans le cas ou la variable diffère de "x.1245" faut que je le sache...

    Merci de ton aide

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/01/2006, 20h30
  2. Réponses: 3
    Dernier message: 22/05/2005, 12h59
  3. Communication C++ <--> Flash MX ou Flash MX2004
    Par loupiloup dans le forum C++Builder
    Réponses: 3
    Dernier message: 19/01/2004, 20h58
  4. [FLASH MX2004] Hierarchisation des actions
    Par bolo dans le forum Flash
    Réponses: 9
    Dernier message: 06/11/2003, 16h02
  5. [FLASH MX2004] Personnaliser les scrollbars
    Par stephane eyskens dans le forum Flash
    Réponses: 10
    Dernier message: 09/10/2003, 12h53

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