Evaluer l'expression d'une variable

Signaler
Messages postés
25
Date d'inscription
lundi 18 décembre 2000
Statut
Membre
Dernière intervention
9 juin 2009
-
Messages postés
25
Date d'inscription
lundi 18 décembre 2000
Statut
Membre
Dernière intervention
9 juin 2009
-
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

Messages postés
380
Date d'inscription
mardi 29 avril 2003
Statut
Membre
Dernière intervention
28 décembre 2009

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
Messages postés
25
Date d'inscription
lundi 18 décembre 2000
Statut
Membre
Dernière intervention
9 juin 2009

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!
Messages postés
25
Date d'inscription
lundi 18 décembre 2000
Statut
Membre
Dernière intervention
9 juin 2009

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.
Messages postés
380
Date d'inscription
mardi 29 avril 2003
Statut
Membre
Dernière intervention
28 décembre 2009

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...
Messages postés
25
Date d'inscription
lundi 18 décembre 2000
Statut
Membre
Dernière intervention
9 juin 2009

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.
Messages postés
380
Date d'inscription
mardi 29 avril 2003
Statut
Membre
Dernière intervention
28 décembre 2009

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
Messages postés
25
Date d'inscription
lundi 18 décembre 2000
Statut
Membre
Dernière intervention
9 juin 2009

Votre aide est extrémement précieuse. merci beaucoup.
A plus.
Djalminha.