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

ActionScript 3 Discussion :

Modulo et division par 0 [MX]


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2011
    Messages : 7
    Par défaut Modulo et division par 0
    Bonjour bonjour,

    tout nouveau sur ce ptit (que dis-je, graaaaaand) forum, je me mets à Flex et AS3 depuis hier soir !

    A la base je suis un développeur totalement Delphi, donc je m'en sors dans la compréhension sauf un cas qu'on m'a soumis, je vous explique :

    Voici un bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(var i : uint = 0; i < 20; ++i)
    {
      ValeurInt2 = ValeurInt1 % i;
     }
    Un code tout simple pour vous j'imagine, sauf que si je me le transtype sous Delphi, j'ai une bonne vieille division par 0 à cause de l'instanciation de i.

    Ma question est : Comment AS3 interprète t'il cette valeur ou suis je passé à coté de quelque chose ?

    En vous remerciant !

    Champi'

    PS : j'espère pas créer un doublon, ma recherche sur Modulo n'ayant rien donné

  2. #2
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    salut,

    le reste de zéro divisé par zéro est zéro ... l'AS est plus permissif

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2011
    Messages : 7
    Par défaut
    Merci bien

    Donc j'ai bien rajouté mon if = 0 en début et tutti biene

    A bientot pour une nouvelle question

  4. #4
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    Salut,
    Citation Envoyé par Lorenzo77 Voir le message
    le reste de zéro divisé par zéro est zéro ...
    en AS3 donne NaN et non 0.

  5. #5
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    si tu reprends son code, tu as zéro comme résultat, fait le test pour vérifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var ValeurInt1:int = 5;
    var ValeurInt2:int;
    for (var i:int = 0; i < 10; i++) {
    	ValeurInt2 = ValeurInt1 % 0;
    	trace(i, ' -> ', ValeurInt2);
    }
    dans tous les cas le reste est de zéro !

    si tu veux ton NaN, il faut utiliser les Number a la place des int ou uint
    c'est une des particularités de la gestion des nombres de l'AS

  6. #6
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    exact ! je n'avais pas typé le résultat ..

    bon à savoir:
    Flash Player et Adobe AIR utilisent la valeur NaN non seulement comme valeur par défaut pour des variables de type Number, mais également comme résultat de toute opération devant renvoyer un nombre mais ne le faisant pas. Par exemple, si vous tentez de calculer la racine carrée d'un nombre négatif, le résultat est NaN. D'autres valeurs Number spéciales comprennent l'infini positif et l'infini négatif.

    Remarque: le résultat de la division par 0 n'est NaN que si le diviseur est également 0. La division par 0 produit infinity lorsque le dividende est positif ou -infinity lorsqu'il est négatif.

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2011
    Messages : 7
    Par défaut
    Et vous m'en apprenez encore

    merci beaucoup !

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

Discussions similaires

  1. Modulo et division par zéro
    Par Carabi dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 09/02/2009, 11h40
  2. [Math] Modulo de la division par 97
    Par cafeine dans le forum Contribuez
    Réponses: 1
    Dernier message: 20/08/2007, 19h48
  3. Division par 16 en C
    Par hermannd dans le forum C
    Réponses: 18
    Dernier message: 13/02/2004, 14h10
  4. [LG]a divise par b
    Par backsync dans le forum Langage
    Réponses: 8
    Dernier message: 22/10/2003, 21h37
  5. probleme avec une division par zéro
    Par jcharleszoxi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/03/2003, 18h14

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