2012-04-28 32 views
2

逆轉雖然做教程的工作,我花了永遠實現一個小數點,現在我有一個,即在公式中工作,但問題是它反轉輸入 - 例如輸入1.4 ,計算器屏幕顯示它爲4.1 - 我知道它與我對變量的管理有關。計劃使用BOOL而不是float..but..any ..iPhone計算器十進制數字輸入

代碼:

 - (IBAction) pressedDecimal: (id) sender 
    { 
     pressedDec = 1; 
    } 

    - (IBAction) pressedDigit: (id) sender 
    { 
     if (pressedDec == 1) 
     {currentNumber = .1 * currentNumber + (double)[sender tag]; 
     calculatorScreen.text = [NSString stringWithFormat:@"%g",currentNumber]; 
     } 
else 

    { 

     currentNumber = currentNumber * 10 + (double)[sender tag]; 
     calculatorScreen.text = [NSString stringWithFormat:@"%g",currentNumber]; 
     pressedDec = 0; 

     } 
    } 



    - (IBAction) pressedOperation: (id) sender 
    { 
if (currentOperation == 0) result = currentNumber; 
else { 
    switch (currentOperation) { 
     case 1: 
      result = result + currentNumber; 
      break; 
     case 2: 
      result = result - currentNumber; 
      break; 
     case 3: 
      result = result * currentNumber; 
      break; 
     case 4: 
      result = result/currentNumber; 
      break; 
     case 5: 
      currentOperation = 0; 
      break; 


    } 

} 
currentNumber = 0; 
calculatorScreen.text = [NSString stringWithFormat:@"%g",result]; 
if ([sender tag] == 0) result = 0; 
currentOperation = [sender tag]; 
    } 

回答

2

考慮更仔細地從你家的代碼這種提取物的作用:

currentNumber = .1 * currentNumber + (double)[sender tag]; 

(我不是很明確,因爲如果我理解正確的問題,你是爲了學習這樣做,和你越是覺得你會學到:-)越好。)

+0

非常感謝你,你完全正確。如sch進一步所示。我只希望下一個問題能以類似的格式得到解答。有了一個剛剛起步的開發者,有時候只是額外的眼睛說「嘿!你在這裏想什麼」是他們需要的。我非常感謝你關心我的學習道路! – theProject 2012-04-28 20:51:26

+0

很高興爲您服務!你應該考慮接受sch的答案或我的答案。祝你好運... – 2012-04-28 20:58:45

+0

Gareth ...即時通訊有問題。我想接受你的答案很多,因爲它讓我回答自己,但爲了將來搜索其他用戶,我相信協議會讓我接受他,因爲它顯示了答案,並且可以保存重複的問題以免被問到? – theProject 2012-04-28 21:03:36

-1

課2號位置:Stanford iTunes U tutorial涵蓋構建一個簡單的計算器。可能有幫助。無論哪種方式,這是一個很好的教程系列。

+0

我認爲,這是他正在做的教程,它不包括小數點,那就是家庭作業。 – 11684 2012-04-28 20:43:27

+0

現在從iTunes下載,我記得在前一段時間聽到這個消息,看到它是在2010年製作的,我希望我可以將Xcode 4+與之前的版本分開。我非常感謝你,因爲這正是我需要的......輔導大聲笑。 – theProject 2012-04-28 20:53:09