私はiPhoneの電卓のチュートリアルに取り組んでいます。数字の表示に問題があります。iPhoneの電卓のチュートリアルのヘルプ、小数点のスタイル..元
2番目に入力されたオペランド(番号)が最初のオペランド(数値)を「印刷」すると、誤った計算が行われます。currentNumberはこの文字列を送ります。
演算子(+、 - 、*、/)をすべて表示しても計算を正しく実行するにはどうすればよいですか?ここで
- (IBAction)pressedDecimal:(id)sender {
calculatorScreen.text = [calculatorScreen.text stringByAppendingString:@"."];
}
- (IBAction)pressedDigit:(id)sender {
calculatorScreen.text = [calculatorScreen.text stringByAppendingFormat:@"%d", [sender tag]];
currentNumber = [calculatorScreen.text floatValue];
}
- (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];
}
OKは、ここで完全に入力された文字列1.11 + 2.22でありますNSRangeを使用しているはずの小数点問題ですか?
エラーの計算を表示する画面のスナップショット(cmd + shift + 4)を共有できますか。私がこの行で 'calculatorScreen 'と言う疑問を持っていても、' pressdigit: 'メソッドからのurコード行 ' currentNumber = [calculatorScreen.text floatValue]; 'は' currentNumber = [[calculatorScreen text] floatValue]; ' –
テキスト= [calculatorScreen.text stringByAppendingString:@ "。"]; ' –