2012-10-20 53 views
2

內的X表達式字符串公式我試圖評估一個字符串公式爲浮動,但我找不到解決方案。這是一個例子。我需要以這種方式計算大約200個公式。XCode如何評估字符串公式與

- NSString *Formula; 
- Float *Result; 
- Float *x 

- x = 12; 
- Formula = @"12.845*x+(-0.505940)"; 

結果=評估/計算(公式);

然後,我將使用Result作爲公式的結果。 - >結果= @「12.845 * x +( - 0.505940)」;

回答

0

你應該做如下:

  1. 代入x與它的字符串中值\
  2. 取操作數(值)和運營商進入該Reverse Polish Notation
  3. 堆棧執行計算
  4. 返回結果

這就是我想要的。

8

您可以使用NSExpression

NSString *formula = @"12.845*x+(-0.505940)"; 
float x = 12.0; 

NSExpression *expr = [NSExpression expressionWithFormat:formula]; 
NSDictionary *object = [NSDictionary dictionaryWithObjectsAndKeys: 
          [NSNumber numberWithFloat:x], @"x", nil]; 

float result = [[expr expressionValueWithObject:object context:nil] floatValue]; 
NSLog(@"%f", result); 
// Output: 153.634064 

這個工程即使有一些功能,如sqrtexp,...支持的功能的列表,請參閱NSExpression文檔。

+0

非常感謝,它的工作原理。 – fred

+1

這應該被接受 –

0

SWIFTY回答,

let formula = "12.845*x+(-0.505940)" 
let x = 12 

let expr = NSExpression(format: formula) 
let object = ["x":x] 

let result = expr.expressionValue(with: object, context: nil) 

print(result) 
//Output: 153.63406