2011-12-27 3 views
0

Я хочу квадрат номер.использование pow(). Так, Пау (3,2) должно быть 9.But он показывает 8 в моей IOS Калькулятор application.here мой код:Objective-C математическая функция

else if([opertaion isEqualToString:@"sqrt"]) 
    { 

     result=pow([self popOperand],[self popOperand]); 
    } 

метод

-(double)popOperand 
{ 
    NSNumber *operandObject = [self.operandStack lastObject]; 
    if(operandObject)[self.operandStack removeLastObject]; 
    return [operandObject doubleValue]; 
} 

Одна вещь, я m newibe для программирования iOS.

Заранее спасибо.

+0

Я подозреваю, что вы не выставляете значения со своего стека в том порядке, в котором вы считаете себя. – Abizern

+0

Я решил свою проблему. Пожалуйста, см. Комментарий ниже. Спасибо :-) – Adnan

ответ

3

Я бы предположил, что вы просто думаете о своих операндах назад. 2^3 == 8.

+0

Да, я получил. Я нажал 3^2. Вот почему я думаю, что это должно быть 9.Спасибо :-) – Adnan

+0

@YasirAdnan Если это ответят ваш вопрос, вы действительно должны принять его, нажав на галочку под названием spinner. – Abizern

0
result=pow([self popOperand],[self popOperand]); 
This statement is being executed from left to right ... so its calculating pow(2,3) 

You can use 
double x = [self operand]; 
double y = [self operand]; 
result = pow(x,y) 
+0

Это также выполняется слева направо – Adnan

0

Похоже, вы пытаетесь вывести первый номер, а затем последний. Итак, getPower (3,2) появится вместо 2^3. Я бы посмотрел на ваш стек и убедился, что вы правильно их упорядочиваете.

Смежные вопросы