斯坦福iphone开发-CS193P作业1 - “罪恶”操作

时间:2012-05-24 10:17:20

标签: iphone objective-c ios cs193p

其中一项必要的工作是实施" sin"计算器上的按钮 添加以下4个操作按钮: •sin:计算堆栈顶部操作数的正弦值。

这是我的代码

- (double)performOperation:(NSString *)operation
{
  double result = 0;

   if ([operation isEqualToString:@"+"]) {

    result = [self popOperand] + [self popOperand];

   }else if ([@"*" isEqualToString:operation]) {

    result = [self popOperand] * [self popOperand];

   }else if ([operation isEqualToString:@"-"]) {

    double subtrahend = [self popOperand];
    result = [self popOperand] - subtrahend;

   }else if ([operation isEqualToString:@"/"]) {

    double divisor = [self popOperand];
    if(divisor) result = [self popOperand] / divisor;

    }else if([operation isEqualToString:@"sin"]){

    double operd = [self popOperand];
    NSLog(@"operd=%g",operd);
    if(operd) result = sin(operd);

   }

[self pushOperand:result];

     return result;
}

我尝试输入sin(60)和结果= -0.304811

但实际上我在windows中使用计算器,结果是0.8860254

我不知道我的代码有什么问题

请给我一些建议,谢谢!

2 个答案:

答案 0 :(得分:5)

Windows计算器将60解释为度;你的计算器将60解释为弧度。两个答案都是正确的。如果您希望将数字解释为度数,请乘以M_PI并除以180。

result = sin(M_PI*operd/180)

答案 1 :(得分:0)

sin()采用弧度,Windows计算器默认采用度数。所以,区别。