我正在使用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];
答案 0 :(得分:3)
我对DDMathParser
了解不多(好吧,我对此一无所知),但是taking a look at the documentation提供了一些关于代码出了什么问题的线索。
根据文档,我找不到DDMathParser
可以处理符号表达式的示例。 “使用情况”页面上的所有示例都显示数字表达式。
对于符号数学,请参阅Symbolic Math Library in C/C++/Obj-C。
此外,看起来你试图用一个方程解决两个变量,这肯定不会产生数值解。
但是,如果您只是尝试替换x
和y
中的值,则应在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]);