2

文字列式を float に評価しようとしていますが、解決策が見つかりません。ここに例があります。この方法で約 200 の数式を計算する必要があります。

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

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

結果=評価/計算(式);

次に、式の結果として Result を使用します。--> 結果 = @"12.845*x+(-0.505940)";

4

3 に答える 3

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

sqrtこれは、 、exp、 ...などの一部の関数でも機能NSExpressionします。サポートされている関数のリストについては、ドキュメントを参照してください。

于 2012-10-21T03:12:56.443 に答える
0

次のようにする必要があります。

  1. x を文字列内の値に置き換えます\
  2. 逆ポーランド記法でオペランド (値) と演算子をスタックに入れる
  3. 計算を実行する
  4. 結果を返す

これが私がそうする方法です。

于 2012-10-20T23:59:50.677 に答える