Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/04/2011, 10h03   #1
Invité de passage
 
Homme
Inscription : avril 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 3
Points : 0
Points : 0
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 :
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é
Champitox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 02h24   #2
Membre Expert
 
Avatar de Lorenzo77
 
Inscription : mai 2006
Messages : 1 294
Détails du profil
Informations personnelles :
Âge : 40
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2006
Messages : 1 294
Points : 1 220
Points : 1 220
salut,

le reste de zéro divisé par zéro est zéro ... l'AS est plus permissif
__________________
Le plus grand arbre est né d'une graine menue, une tour de neuf étages est partie d'une poignée de terre.
Mon blog : http://web.codeur.free.fr
Lorenzo77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 11h09   #3
Invité de passage
 
Homme
Inscription : avril 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 3
Points : 0
Points : 0
Merci bien

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

A bientot pour une nouvelle question
Champitox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 14h14   #4
Rédacteur/Modérateur
 
Avatar de beekeep
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 1 604
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 1 604
Points : 2 233
Points : 2 233
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.
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 16h06   #5
Membre Expert
 
Avatar de Lorenzo77
 
Inscription : mai 2006
Messages : 1 294
Détails du profil
Informations personnelles :
Âge : 40
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2006
Messages : 1 294
Points : 1 220
Points : 1 220
si tu reprends son code, tu as zéro comme résultat, fait le test pour vérifier :
Code :
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
__________________
Le plus grand arbre est né d'une graine menue, une tour de neuf étages est partie d'une poignée de terre.
Mon blog : http://web.codeur.free.fr
Lorenzo77 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/04/2011, 16h32   #6
Rédacteur/Modérateur
 
Avatar de beekeep
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 1 604
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 1 604
Points : 2 233
Points : 2 233
exact ! je n'avais pas typé le résultat ..

bon à savoir:
Citation:
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.
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 20h05   #7
Invité de passage
 
Homme
Inscription : avril 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 3
Points : 0
Points : 0
Et vous m'en apprenez encore

merci beaucoup !
Champitox est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h47.


 
 
 
 
Partenaires

Hébergement Web