【发布时间】:2013-08-06 09:35:22
【问题描述】:
我一直在研究我的数学解析器,我开始意识到我正在使用的一些代码无法处理非整数指数。我正在使用的那段代码似乎适用于int,但不适用于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)
【问题讨论】:
-
有什么理由不使用
pow()求幂? -
直到现在我才需要使用它。我几乎是自学成才的。但是谢谢,另一个我不知道的工具已添加到工具箱中。
-
@JoeMillion 另外,仅供参考,第二个操作数称为“指数”,而不是“指数”。
标签: objective-c c math exponent shunting-yard