Я немного работаю над своим математическим парсером, и я понял, что немного кода, который я использую, не может обрабатывать экспонента, который не является межсетевым. Бит кода, который я использую, кажется, отлично работает с int
, но не с double
.Вычисление нецелых показателей в iOS
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()' для возведения в степень? – Sebastian
Я никогда не был до этого момента, чтобы использовать его. Я довольно самоучкой. Но спасибо, еще один инструмент, который я не знал о добавлении в панель инструментов. –
@JoeMillion. Кроме того, FYI, второй операнд называется «экспонентом», а не «exponate». –