我一直在研究我的数学解析器,我开始意识到我正在使用的一些代码无法处理非整数指数。我正在使用的那段代码似乎适用于 a int
,但不适用于 a double
。
else if ([[token stringValue] isEqualToString: @"^"])
{
NSLog(@"^");
double exponate = [[self popOperand] intValue];
double base = [[self popOperand] doubleValue];
result = base;
exponate--;
while (exponate)
{
result *= base;
exponate--;
}
[self.operandStack addObject: [NSNumber numberWithDouble: result]];
}
' 使用 Objective-C,我如何正确评估 5^5.5 之类的东西?(6987.71242969)