Je souhaite évaluer une expression mathématique que l'utilisateur saisit dans une zone de texte. Je l'ai fait jusqu'à présentrésolution d'une expression mathématique
string equation, finalString;
equation = textBox1.Text;
StringBuilder stringEvaluate = new StringBuilder(equation);
stringEvaluate.Replace("sin", "math.sin");
stringEvaluate.Replace("cos", "math.cos");
stringEvaluate.Replace("tan", "math.tan");
stringEvaluate.Replace("log", "math.log10");
stringEvaluate.Replace("e^", "math.exp");
finalString = stringEvaluate.ToString();
StringBuilder replaceI = new StringBuilder(finalString);
replaceI.Replace("x", "i");
double a;
for (int i = 0; i<5 ; i++)
{
a = double.Parse(finalStringI);
if(a<0)
break;
}
quand je lance ce programme, il donne une erreur "Input string was not in a correct format."
et met en évidence a=double.Parse(finalStringI);
J'ai utilisé une expression pré défini a = i * math.log10 (i) -1,2 et fonctionne, mais quand j'entre la même chose dans la zone de texte, ce n'est pas le cas. J'ai fait quelques recherches et cela m'a permis de compiler le code lors de l'exécution.
des idées comment faire cela? Je suis un débutant absolu. remerciements
Il n'y a pas de services publics dans le cadre d'évaluation des chaînes d'expression arbitraires que vous essayez de faire. Il serait préférable d'analyser la chaîne et d'écrire la logique pour effectuer les évaluations. Comme vous l'avez en ce moment, il n'y a pas de moyen facile de faire ce que vous essayez de faire. –
@JeffMercado: Il est toujours dangereux de dire "Il n'y a rien dans le cadre", parce que c'est si facile de se tromper. Il arrive que vous êtes. –