如何将带有操作数的“String-Calculation-Row”转换为double?

时间:2011-03-14 11:13:07

标签: iphone objective-c ios ipad ios4

有人可以通过字符串转换帮助我吗? 这一行例如是我想转换的字符串:

(这是来自用户通过Textfield :) NSString * testString = @“3 + 4 * 5.2 - 6”;

此刻我的方式是,但操作数改变了......: double temp = number1 + number2 * number3 - number4;

结果应该是double,并且必须识别操作数。这些数字根本不是问题,而是操作数。像“*”或“/”这样的操作数无法使用doubleValue转换为double。是否有可能从字符串中这样做?

提前致谢! : - )

2 个答案:

答案 0 :(得分:3)

尝试使用NSScanner扫描此类字符串。

BTW'+',' - '被称为操作而不是操作数。在你的情况下,操作数是'3','4'等。

<强>更新

看起来Dave DeLong(https://stackoverflow.com/users/115730/dave-delong)已经通过DDMathParser解决了您的问题 - https://github.com/davedelong/DDMathParser

答案 1 :(得分:0)

顺便说一下,你正在寻找“评估”。字符串转换是另一回事。