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を使用する必要がありますか?