我在NSString中有公式...如何评估它

Ben*_*305 2 iphone objective-c ios

可能重复:
什么是快速C或Objective-C数学解析器?

我有一个创建一个函数,它将公式作为NSString.我必须在String中替换一些东西并在执行公式后获取值.我怎样才能做到这一点...

例如:NSString*formulaString = @"((A/B)-1)*100";

现在我可以将A替换为20,将B替换为10.但是如何将计算值((20/10)-1)*100替换为100

谢谢,本

msk*_*msk 8

你必须建立表达式计算器.我知道的一个开源目标C库是GCMathParser

  • 另外值得注意的是优秀的[DDMathParser](https://github.com/davedelong/DDMathParser)库. (2认同)

Mar*_*n R 6

如果您的公式不太复杂,您可以使用NSExpression:

NSExpression *e = [NSExpression expressionWithFormat:@"((20/10)-1)*100"];
NSNumber *result = [e expressionValueWithObject:nil context:nil];
NSLog(@"%@", result);
// Output: 100
Run Code Online (Sandbox Code Playgroud)

这个工程即使有一些功能,例如sqrt,exp,...查看NSExpression文档支持功能的列表.