0

DDMathParser用来解析字符串表达式。我正在研究一个表达式“ (2+x)6+2x+2y=5y+2x”,我正在尝试解析它并使用DDMathParser. 它可以被认为是我需要使用 Objective C 解决的一级函数。

各位有什么想法吗?

帮助将不胜感激。

DDExpression * e = [DDExpression expressionFromString:expression error:error];
NSNumber *num = [e evaluateWithSubstitutions:substitutions evaluator:nil error:error];
4

1 回答 1

3

我不太了解DDMathParser(好吧,我对此一无所知),但是查看文档可以提供一些关于您的代码出了什么问题的线索。

根据文档,我找不到DDMathParser可以处理符号表达式的示例。使用页面上的所有示例都显示了数字表达式。

有关符号数学,请参阅C/C++/Obj-C 中的符号数学库

此外,您似乎正试图用一个方程式求解两个变量,这肯定不会产生数值解。

但是,如果您只是尝试替换 for xand中的值y,则应使用$它们前面的符号,如文档所述:

如果在构造字符串时不知道特定术语的值应该是什么,那没关系;只需使用一个变量:

     NSString *math = @"6 * $a";

因此,如果您只想替换表达式中的值,请尝试使用:

string expression = @"(2+$x)6+2*$x+2*$y";

然后填写值。

NSDictionary *s = @{@"x" : 42, @"y" : 43};

并评价。

DDMathEvaluator *eval = [DDMathEvaluator sharedMathEvaluator];
NSLog(@"%@", [eval evaluateString:expression withSubstitutions:s]);
于 2013-12-14T09:18:12.003 回答