iOS/Objective C に関する簡単な質問があります。私はフォーラムを検索し、いくつかの異なるアプローチを試しましたが、これを理解できないようです. ゼロから作成したボタンを使用して単純な電卓を作成しようとしていますが、小数部分にこだわっています。スイッチステートメントを使用して、ボタン (id) 送信者から番号を入力しています。私がコメントアウトした部分を見ることができます。これは、10 でタグ付けされた id を取得し、浮動小数点値に 10 進数を実装する何らかのステートメントを記述しようとしていた場所です。
小数点以下を追加する以前の投稿も見ました。コードを変更しようとしましたが、ここにかなりのものが欠けているようです。
-(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];
}