2011-06-24 5 views
0

私は簡単なiOS/objective Cの質問をしています。私はフォーラムを検索し、いくつかのアプローチを試しましたが、これを理解することはできません。コーディングがとても新しいので、謝ってしまいます。私はゼロから作られたボタンで簡単な電卓を作ろうとしていますが、小数点についています。私はswitch文を使用して、ボタン(id)送信者から自分の番号を入力しています。私がコメントアウトした部分を見ることができます。これは、10でタグ付けされたIDを取得し、フロート値に10進数を実装するための何らかの文を書く場所です。Xcodeで小数点から(ID)送信者タグを実装する

小数点を追加する前の投稿も見ました。私はコードを変更しようとしましたが、ここにはかなりのものがあります。

-(IBAction)decimalButton:(id)sender{ 
    calculatorScreen.text = [calculatorScreen.text stringByAppendingFormat:@"."]; 
} 

すべてのヘルプ/提案/サンプルコードは、非常に参考になる、再びイム基本を学ぶために全力をしようと、初心者の質問には申し訳ありませんイム。

#import "calcViewController.h" 

@implementation calcViewController 



-(IBAction)buttonDigitPressed:(id)sender { //ditits presed with sender tag 
// switch ([sender tag]) { 
//  case 1: 
//   currentNumber = 1; 
//   break; 
//  case 2: 
//   currentNumber = 2; 
//   break; 
//  case 3: 
//   currentNumber = 3; 
//   break; 
//  case 4: 
//   currentNumber = 4; 
//   break; 
//  case 5: 
//   currentNumber = 5; 
//   break; 
//  case 6: 
//   currentNumber = 6; 
//   break; 
//  case 7: 
//   currentNumber = 7; 
//   break; 
//  case 8: 
//   currentNumber = 8; 
//   break; 
//  case 9: 
//   currentNumber = 9; 
//   break; 
//  case 10: 
//   //possibly implement decimal here 
//   break; 
// } 


    currentNumber = (float)[sender tag]; //sets currentNumber to buttonPressed 
    calculatorScreen.text = [NSString stringWithFormat:@"%g",currentNumber];//displays button 
} 


-(IBAction)buttonOperationPressed:(id)sender { 
    //currentOperation is 0 by system default? 

    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; 

    currentNumber = result; //current number equals last resulting equation 
    calculatorScreen.text = [NSString stringWithFormat:@"%g",result]; //screen prints result 
    if ([sender tag] == 0) result = 0; 
    currentOperation = [sender tag]; 
} 
+0

を使用し、計算でこれを使用するには? –

+0

iPhone電卓の小数部分をどのように構築するかわかりません。私は0-9の数字のために働いている単純なアプリケーションを持っていますが、私は小数点のためのボタンを実装するのに失敗しました5.25 + 5.50 = 10.75私は数字を入力するためにid(送信者)タグを使用していますが、タグを小数点に置き換えて、インタフェースビルダーでコードに小数点以下の数値を入力する方法を解明しようとしています。 – user813611

+0

ボタンで「タグ」を使用して小数点を識別できないのはなぜですか? –

答えて

0

以下のコードは、画面を正しく更新するはずです。

-(IBAction)buttonDigitPressed:(id)sender { //ditits presed with sender tag 
    switch ([sender tag]) { 
     case 1: 
     case 2: 
     case 3: 
     case 4: 
     case 5: 
     case 6: 
     case 7: 
     case 8: 
     case 9: 
      calculatorScreen.text = [calculatorScreen.text stringByAppendingFormat:@"%d", [sender tag]]; 
      break; 

     case 10: 
      NSRange range = [calculatorScreen.text rangeOfString:@"."]; 
      if (range.location == NSNotFound) { 
       calculatorScreen.text = [calculatorScreen.text stringByAppendingString:@"."]; 
      } 
      break; 
    } 
} 

あなたの問題は、正確に何

float screenNumber = [calculatorScreen.text floatValue]; 
+0

'Foundation/Foundation.h'はインポートされていますか? –

+0

あなたのソリューションが小数点を表示するようになったので、次は計算を試みます。 – user813611

関連する問題