Evaluer l'expression d'une variable

cs_djalminha Messages postés 25 Date d'inscription lundi 18 décembre 2000 Statut Membre Dernière intervention 9 juin 2009 - 4 févr. 2009 à 14:01
cs_djalminha Messages postés 25 Date d'inscription lundi 18 décembre 2000 Statut Membre Dernière intervention 9 juin 2009 - 4 févr. 2009 à 20:04
Bonjour à tous! je suis débutant en flash et je pose la question suivante :
Comment peut-on évaluer mathématiquement l'expréssion d'une variable ?

Exemple :
var expression:string
expression = "2+3"

Je veux évaluer expression, c'est à dire calculer le résultat de l'opération et obtenir 5.

Si j'ecris:

Resultat = expression
trace(Resultat)

la sortie est toujours 2+3
Existe-il une méthode pour faire cette opération ?
Merci de m'aider.

7 réponses

gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
4 févr. 2009 à 14:11
Salut,
toujours sur ta calculette !!!
// string vers number
var myString:String = "5";
var myNumber:Number = Number(myString);

// number vers string
var myNumber:Number= 5;
var myString:String= String(myNumber);

// string vers int (integer)
var myString:String = "5";
var myInt:int = int(myString);

Grems
0
cs_djalminha Messages postés 25 Date d'inscription lundi 18 décembre 2000 Statut Membre Dernière intervention 9 juin 2009
4 févr. 2009 à 14:16
Salut Grems, merci pour votre réponse. En effet toujours sur la calculette!
Je vais essayer ce que vous m'avez dit et je vous ferai signe.
Merci beaucoup!
0
cs_djalminha Messages postés 25 Date d'inscription lundi 18 décembre 2000 Statut Membre Dernière intervention 9 juin 2009
4 févr. 2009 à 14:27
Toujours le même problème :

Le code suivant fonctionne :

var expression:String = "5"
var Resultat:Number=Number(expression)
Sortie : 5

Le code suivant ne fonctionne pas :

var expression:String = "5+3"
var Resultat:Number=Number(expression)
Sortie : NaN et moi je m'attendais à 8

Merci beaucoup.
0
gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
4 févr. 2009 à 17:41
Re,
oula oula !!! Il te faut reviser tes bases de la programmation ;)

"5+3" est une chaine, c'est normale que ca fasse NaN (Not a Number)

Il faut que tu decompose la chaine en "5" "+"  "3" puis seulement utiliser la conversion en Number de "5" et "3" avant de faire toi même l'addition "+".

Voila tu as tout pour y arriver...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_djalminha Messages postés 25 Date d'inscription lundi 18 décembre 2000 Statut Membre Dernière intervention 9 juin 2009
4 févr. 2009 à 17:54
Au fait je ne suis pas programmeur mais prof de sciences physiques, j'ai que quelques notions de programmation et j'espere evoluer vers un meilleur niveau. Créer mon site chez un professionel me coutera trés cher donc je suis obligé de m'invéstir moi même. Ca ne sera pas simple...
A plus
Djalminha.
0
gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
4 févr. 2009 à 18:16
Re,
moi non plus je ne sui pas programmeur...
S'investir soi-même est une demarche encouragée ici. Elle merite danc des réponses :
Une variable est typée : soit un entier (int), soit un decimal (Number), soit une chaine de caractère (String), soit encore bien d'autres choses.
Lorsque tu convertit un String en Number, il faut que ce soit possible. On ne peut pas convertir le caractère "+" en un nombre par exemple. De la même manière, on ne peut pas convertir une variable string "5+3" en un nombre. Par contre on peut convertir la chaine "5" en nombre 5 (int ou autre). Il faut donc que tu extrait toi même de la chaine ce qui peut être convertit et ce qui ne le peut pas.
Pour ce faire, tu utilise (en actionscript3) les fonctions deja existante du type string. Ex:

//declaration
var test:String;
test="salut";

//longeur de la chaine
test.length (ici c'est 5, s.a.l.u.t.)

//couper la chaine
test.split(mes parametres)

//chercher dans la chaine
test.search(mes parametres)

//remplacer dans la chaine
test.replace(...)

et il y en a encore bien d'autre qui te seront utiles

Voila, bon courage
0
cs_djalminha Messages postés 25 Date d'inscription lundi 18 décembre 2000 Statut Membre Dernière intervention 9 juin 2009
4 févr. 2009 à 20:04
Votre aide est extrémement précieuse. merci beaucoup.
A plus.
Djalminha.
0