Недавно я посмотрел учебник по калькулятору для iPhone. Это работает, однако у меня проблема с нежелательными десятичными знаками. Это означает, что мое приложение поставит точку после моего числа и после него будет около 6 0. Я посмотрел, как это исправить, и попробовал то, что увидел, однако это работает только тогда, когда я ввожу первое число. Когда я нажимаю кнопку «Умножение», «Деление», «Вычитание» или «Сложение», они снова появляются, и когда он показывает ответ, он включает нежелательные десятичные дроби тоже. Мой код ниже, пожалуйста, помогите мне Спасибо!
ViewController.h
//
// ViewController.h
// Simple Calculator
//
// Created by Michael on 2013-08-08.
// Copyright (c) 2013 com.company. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController {
float result;
IBOutlet UILabel *calculatorScreen;
int currentOperation;
float currentNumber;
BOOL userInTheMiddleOfEnteringDecimal;
}
-(IBAction)buttonDigitPressed:(id)sender;
-(IBAction)buttonOperationPressed:(id)sender;
-(IBAction)cancelInput;
-(IBAction)cancelOperation;
@end
ViewController.m
//
// ViewController.m
// Simple Calculator
//
// Created by Michael on 2013-08-08.
// Copyright (c) 2013 com.company. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
-(IBAction)buttonDigitPressed:(id)sender {
if (!userInTheMiddleOfEnteringDecimal)
{
currentNumber = currentNumber *10 + (float ) [sender tag];
calculatorScreen.text = [NSString stringWithFormat:@"%2d",(int)currentNumber];
}
else{
calculatorScreen.text= [calculatorScreen.text stringByAppendingString:[NSString stringWithFormat:@"%d",[sender tag]]];
currentNumber = [calculatorScreen.text floatValue];
}
}
-(IBAction)buttonOperationPressed:(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:@"%2f",result];
if ([sender tag] == 0) result=0;
currentOperation = [sender tag];
userInTheMiddleOfEnteringDecimal = NO;
}
-(IBAction)cancelInput {
currentNumber = (int)(currentNumber/10);
calculatorScreen.text = [NSString stringWithFormat:@"%.2f",currentNumber];;
}
-(IBAction) cancelOperation {
currentNumber = 0;
calculatorScreen.text = @"0";
userInTheMiddleOfEnteringDecimal = NO;
}
- (IBAction)dotPressed{
if(!userInTheMiddleOfEnteringDecimal){
userInTheMiddleOfEnteringDecimal = YES;
calculatorScreen.text= [calculatorScreen.text stringByAppendingString:@"."];
}
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Спасибо :)