首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NSExpression计算值的平方?

使用NSExpression计算值的平方?
EN

Stack Overflow用户
提问于 2012-10-24 16:03:29
回答 3查看 1.5K关注 0票数 2
代码语言:javascript
复制
NSString *formul=@"3^2";
NSExpression *e = [NSExpression expressionWithFormat:formul];
int result = [[e expressionValueWithObject:nil context:nil] intValue];
NSLog(@"formule:%d", result);

我正在尝试计算(a+b)^2。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-15 07:35:26

使用**而不是^

代码语言:javascript
复制
NSString *formul=@"3 ** 2";
NSExpression *e = [NSExpression expressionWithFormat:formul];
int result = [[e expressionValueWithObject:nil context:nil] intValue];
NSLog(@"formule:%d", result);

但要注意Foundation的幂函数是左关联的(这是错误的)。请参阅Dave Delong的帖子。

http://funwithobjc.tumblr.com/post/6196535272/parsing-mathematical-expressions

票数 2
EN

Stack Overflow用户

发布于 2012-10-24 16:17:59

将上面的代码替换为:

代码语言:javascript
复制
NSString *formul=[NSString stringWithFormat:@"%.f",pow(2,4)];
NSExpression *e = [NSExpression expressionWithFormat:formul];
int result = [[e expressionValueWithObject:nil context:nil] intValue];
NSLog(@"formule:%d", result);
票数 1
EN

Stack Overflow用户

发布于 2012-10-26 20:50:56

代码语言:javascript
复制
NSNumber *number1 = [NSNumber numberWithInteger:2];        
NSNumber *number2 = [NSNumber numberWithInteger:4];

NSString *strSqr=[NSString stringWithFormat:@"%@%@%@",number1,@"+",number2];

NSExpression *arrayExpression = [NSExpression expressionForConstantValue: number1];

NSArray *arrNum=[NSArray arrayWithObjects:[NSExpression expressionWithFormat:strSqr],arrayExpression,nil];

NSExpression* expression =[NSExpression expressionForFunction:@"raise:toPower:" arguments:arrNum];

 NSLog(@"powerExp:%@",expression);

 int  resultSum = [[expression expressionValueWithObject:nil context: nil] intValue];
 NSLog(@"resultnum:%d",resultSum);`

我已经得到了输出:

代码语言:javascript
复制
 powerExp:(2 + 4) ** 2

 resultnum:36
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13045089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档