其中一项必要的工作是实施" 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
我不知道我的代码有什么问题
请给我一些建议,谢谢!
答案 0 :(得分:5)
Windows计算器将60解释为度;你的计算器将60解释为弧度。两个答案都是正确的。如果您希望将数字解释为度数,请乘以M_PI
并除以180。
result = sin(M_PI*operd/180)
答案 1 :(得分:0)
sin()采用弧度,Windows计算器默认采用度数。所以,区别。