XCode How to evaluate String formula with an X expression inside

前端 未结 3 757
星月不相逢
星月不相逢 2020-12-18 14:40

I\'m tring to evaluate a string formula to a float but, I cannot find a solution. Here is an example. I need to calculate about 200 formulas in this way.

-          


        
3条回答
  •  情深已故
    2020-12-18 15:31

    You can use 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
    

    This works even with some functions such as sqrt, exp, ... See the NSExpression documentation for a list of supported function.

提交回复
热议问题