Se ho una variabile stringa con una formula:Come convertire formula stringa in una formula matematica in C#
string myformula = "3 * 5 + Pow(2,3)";
Come posso convertire questa stringa a una formula matematica che il compilatore può calcolare?
Se ho una variabile stringa con una formula:Come convertire formula stringa in una formula matematica in C#
string myformula = "3 * 5 + Pow(2,3)";
Come posso convertire questa stringa a una formula matematica che il compilatore può calcolare?
Infine ho ottenuto la libreria FLEE per questo scopo. Lo strumento è gratuito e perfettamente adatto al tuo scopo. Di seguito è riportato un esempio di come utilizzare questa libreria:
// Define the context of our expression
ExpressionContext context = new ExpressionContext();
// Allow the expression to use all static public methods of System.Math
context.Imports.AddType(typeof(Math));
// Define an int variable
context.Variables["a"] = 100;
// Create a dynamic expression that evaluates to an Object
IDynamicExpression eDynamic = context.CompileDynamic("sqrt(a) + pi");
// Evaluate the expressions
double result = (double)eDynamic.Evaluate();
Non so perché menzionare un compilatore, ma il modo più semplice sarà utilizzare un analizzatore di espressioni matematiche, ad esempio NCalc.
Forse this è disponibile, ma quella biblioteca non poteva sostenere "Math.pow".
È possibile aggiungere un riferimento a Microsoft Script Control Library (COM) e utilizzare un codice come questo per valutare un'espressione. (Funziona anche per JScript.)
MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
sc.Language = "VBScript";
string expression = "1 + 2 * 7";
object result = sc.Eval(expression);
MessageBox.Show(result.ToString());
Per qualcosa il compilatore può calcolare hai bisogno di una costante espressione nel codice, in modo qualcosa di simile a '3 * 5 + 2 * 2 * 2'. Non intendi che il tuo codice dovrebbe valutarlo? – Joey
il compilatore compila solo –
Finalmente ho ricevuto la libreria FLEE. Lo strumento è gratuito e perfettamente adatto a questo scopo. –