Objective c 将带有数学表达式的字符串转换为浮点

Objective c 将带有数学表达式的字符串转换为浮点,objective-c,cocoa,math,expression,string-parsing,Objective C,Cocoa,Math,Expression,String Parsing,文本字段包含如下数学表达式:12+45-6是否可以将此字符串转换为数字 我们可以使用谓词工具吗 NSString *foo = @"((a*b)/c+(d/5))+15"; // dummy predicate that contains our expression NSPredicate *pred = [NSPredicate predicateWithFormat:[foo stringByAppendingString:@" == 42"]]; NSExpression *exp =

文本字段包含如下数学表达式:
12+45-6
是否可以将此字符串转换为数字

我们可以使用谓词工具吗

NSString *foo = @"((a*b)/c+(d/5))+15";
// dummy predicate that contains our expression
NSPredicate *pred = [NSPredicate predicateWithFormat:[foo stringByAppendingString:@" == 42"]];
NSExpression *exp = [pred leftExpression];
NSNumber *result = [exp expressionValueWithObject:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:4], @"a",[NSNumber numberWithInt:7], @"b",[NSNumber numberWithInt:2], @"c",[NSNumber numberWithInt:20], @"d",nil]context:nil];
NSLog(@"%@", result); // logs "33"<br/>
NSString*foo=@“(a*b)/c+(d/5))+15”;
//包含表达式的伪谓词
NSPredicate*pred=[NSPredicate PREDITEWITHFORMAT:[foo stringByAppendingString:@“==42”];
NSExpression*exp=[pred leftExpression];
NSNumber*结果=[exp expressionValueWithObject:[NSDictionary Dictionary WithObjects and Keys:[NSNumber numberWithInt:4]、@“a”、“NSNumber numberWithInt:7]、@“b”、“NSNumber numberWithInt:2]、@“c”、“NSNumber Withint:20]、@“d”、nil]上下文:nil];
NSLog(@“%@”,结果);//日志“33”

我还发现这个

是的。阅读“表达式评估”,或使用现成的脚本解释器。JavaScript作为WebView的一部分可用于所有iOS程序。

是。阅读“表达式评估”,或使用现成的脚本解释器。JavaScript作为WebView的一部分可用于所有iOS程序。

一个不依赖外部库的解决方案是首先将字符串转换为一系列标记,然后使用链接到简单堆栈机器上的表达式求值。

不依赖外部库的一个解决方案是首先将字符串转换为一系列标记,然后使用链接到简单堆栈机器上的表达式求值。

您需要使用解析器解析此输入,然后对其求值。我听说有人成功地使用muParser来实现这一点,以避免您自己编写它。过来看。

您需要使用解析器解析此输入,然后对其求值。我听说有人成功地使用muParser来实现这一点,以避免您自己编写它。过来看。
是的,当然有可能

您应该使用堆栈研究中缀到后缀的转换:


然后研究如何使用堆栈计算postix表达式:

是的,当然可能

您应该使用堆栈研究中缀到后缀的转换:


然后研究如何计算postix表达式,也使用堆栈:

仅供参考-也正在进行讨论:“请发送代码”在这里是不受欢迎的。只是说。仅供参考的可能副本-也有这样的讨论正在进行:“请发送代码”在这里是不赞成的。只是说。可能是重复的作品,但我认为这种简单性不值得这么糟糕的性能。谢谢你的帮助^^,你能给一个链接到一个示例xcode项目吗?很好,但我认为这种简单性不值得这么糟糕的性能。谢谢你的帮助^ ^,你能给我一个指向示例xcode项目的链接吗?谢谢你的帮助^^,你能给我一个指向示例xcode项目的链接吗?我链接到的页面提供了一个C实现。我不知道你会在任何地方找到一个预烘焙的XCode项目。如果这听起来太难了(与其说是一个快速拼凑乐高积木的练习,不如说是几个小时的项目),那么你应该使用内置的JavaScript引擎,尽管这需要启动web浏览器控件,这是一个相当重的解决方案。谢谢你的帮助^ ^,你能给我一个指向示例xcode项目的链接吗?我链接到的页面提供了一个C实现。我不知道你会在任何地方找到一个预烘焙的XCode项目。如果这听起来太难了(与其说是一个快速拼凑乐高积木的练习,不如说是几个小时的项目),那么你应该使用内置的JavaScript引擎,尽管这需要启动web浏览器控件,这是一个相当重的解决方案。谢谢你的帮助^ ^,你能给我一个指向示例xcode项目的链接吗?我希望每个问题都来自示例xcode项目,lol。这是一个c库,你必须自己解决它,我的朋友。谢谢你的帮助^^,你能给我一个指向示例xcode项目的链接吗?我希望每个问题都来自示例xcode项目,lol。这是一个c库,我的朋友,你必须自己解决这个问题。谢谢你的帮助^^,你能给我一个指向示例xcode项目的链接吗?谢谢你的帮助^,你能给我一个指向示例xcode项目的链接吗?