A voir également:
- C# parser une equation pour faire un calcul
- Clémence souhaite faire calculer automatiquement les prix de 30 produits dans trois devises. elle a déjà saisi une formule de calcul pour le tarif du premier produit dans la première devise. corrigez sa formule afin que recopiée vers le bas puis vers la droite, elle remplisse correctement tout le tableau. - Forum Excel
- Calculer une note sur 20 ✓ - Forum Bureautique
- Virginie organise un rallye avec 30 équipes. elle veut créer un code pour désigner chaque équipe. elle a commencé à la main, mais elle voudrait le faire calculer automatiquement. trouvez ce qu'elle veut faire puis proposez une formule à recopier vers le bas dans la colonne a. quelle formule sera en a9 ? - Forum Excel
- Formule de calcul excel - Guide
- Calcul période d'essai cdi simulateur excel ✓ - Forum Excel
1 réponse
Salut,
L'erreur vient du fait que tu ne peux pas transformer les chaines "+" et "-" pour les utiliser en temps qu'opérateurs de ton équation et retourner le double que tu attends.
A la place tu peux faire quelque chose comme cela:
L'erreur vient du fait que tu ne peux pas transformer les chaines "+" et "-" pour les utiliser en temps qu'opérateurs de ton équation et retourner le double que tu attends.
A la place tu peux faire quelque chose comme cela:
public double ParseEquation(string equation)
{
string[] monEquation = equation.Split("+-".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
string operateurs = @"(?<Operator>[+|-])";
System.Text.RegularExpressions.MatchCollection operateursCollection = System.Text.RegularExpressions.Regex.Matches(equation, operateurs, System.Text.RegularExpressions.RegexOptions.IgnorePatternWhitespace);
double resultat = Convert.ToDouble(monEquation[0]);
for (int i = 0; i < monEquation.Length - 1; i++)
{
resultat = CalculerOperateur(resultat, Convert.ToDouble(monEquation[i + 1]), operateursCollection[i].Value);
}
return resultat;
}
private double CalculerOperateur(double nombre1, double nombre2, string op)
{
if (op == "-")
{
return nombre1 - nombre2;
}
else if (op == "+")
{
return nombre1 + nombre2;
}
else
{
// Gérer l'erreur d'opérateur
}
}