无法使用DDMathParser解决数学表达式

时间:2013-12-13 09:57:38

标签: ios iphone objective-c ddmathparser

我正在使用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];

1 个答案:

答案 0 :(得分:3)

我对DDMathParser了解不多(好吧,我对此一无所知),但是taking a look at the documentation提供了一些关于代码出了什么问题的线索。

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

对于符号数学,请参阅Symbolic Math Library in C/C++/Obj-C

此外,看起来你试图用一个方程解决两个变量,这肯定不会产生数值解。

但是,如果您只是尝试替换xy中的值,则应在documentation之前使用$符号:

  

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

     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]);