C# parser une equation pour faire un calcul
Bob
-
Nack -
Nack -
Bonjour,
J'ai un calcul du style 5 + 4 - 1 dans une string et je dois calculer la valeur -> 8
voici ce que j'ai faire, je split tout dans un tableau (ok) mais apres quand je veux faire le calcul, j'ai un message d'erreur (cannot implicitly convert type 'string' to 'double').
Je ne vois pas ce que je dois faire pour corriger cela. Merci
public static double ParseEquation(string equation)
{
string[] arInfo = new string[5];
// define which character is seperating fields
char[] splitter = { ' ' };
arInfo = equation.Split(splitter);
double result = 0.0;
result = Convert.ToDouble(arInfo[0]) + arInfo[1] + Convert.ToDouble(arInfo[2]) + arInfo[3] + Convert.ToDouble(arInfo[4]);
return 0.0;
}
J'ai un calcul du style 5 + 4 - 1 dans une string et je dois calculer la valeur -> 8
voici ce que j'ai faire, je split tout dans un tableau (ok) mais apres quand je veux faire le calcul, j'ai un message d'erreur (cannot implicitly convert type 'string' to 'double').
Je ne vois pas ce que je dois faire pour corriger cela. Merci
public static double ParseEquation(string equation)
{
string[] arInfo = new string[5];
// define which character is seperating fields
char[] splitter = { ' ' };
arInfo = equation.Split(splitter);
double result = 0.0;
result = Convert.ToDouble(arInfo[0]) + arInfo[1] + Convert.ToDouble(arInfo[2]) + arInfo[3] + Convert.ToDouble(arInfo[4]);
return 0.0;
}
A voir également:
- C# parser une equation pour faire un calcul
- Calcul moyenne excel - Guide
- Calcul km marche à pied gratuit - Télécharger - Sport
- Calcul charpente bois gratuit - Télécharger - Architecture & Déco
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Editeur d'équation - Télécharger - Vie quotidienne
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 } }