I followed a tutorial to make an iOS Calculator, and I am now wanting to add a decimal place button to it. Here is my code
header file:
#import <UIKit/UIKit.h>
@interface CalcViewController : UIViewController {
float result;
float selectedNumber;
int selectedOperation;
IBOutlet UILabel *calcScreen;
}
-(IBAction)numberPressed:(id)sender;
-(IBAction)operationPressed:(id)sender;
-(IBAction)clearNumber:(id)sender;
-(IBAction)clearOperation:(id)sender;
@end
Here is my implementation file
#import "CalcViewController.h"
@implementation CalcViewController
-(IBAction)numberPressed:(id)sender {
selectedNumber = selectedNumber * 10 + (float) [sender tag];
calcScreen.text = [NSString stringWithFormat:@"%2g", selectedNumber];
}
-(IBAction)operationPressed:(id)sender {
if (selectedOperation == 0) {
    result = selectedNumber;
} else {
    switch (selectedOperation) {
        case 1:
            result = result + selectedNumber;
            break;
        case 2:
            result = result - selectedNumber;
            break;
        case 3:
            result = result * selectedNumber;
            break;
        case 4:
            result = result / selectedNumber;
            break;
        case 5:
            selectedOperation = 0;
            break;
    }
}
selectedNumber = 0; 
calcScreen.text = [NSString stringWithFormat:@"%2g", result];
if ([sender tag] == 0) result = 0;
selectedOperation = [sender tag];
} 
-(IBAction)clearNumber:(id)sender {
selectedNumber = 0;
calcScreen.text = @"0";
}
-(IBAction)clearOperation:(id)sender {
selectedNumber = 0;
calcScreen.text = @"0";
selectedOperation = 0;
}
I saw on another thread that someone had suggesting using the method:
- (IBAction)Decimal:(id)sender 
{
 NSString *currentText = calcScreen.text;
 if ([currentText rangeOfString:@"." options:NSBackwardsSearch].length == 0) {
    calcScreen.text = [calcScreen.text stringByAppendingString:@"."];  
}
However this did not seem to work for me. It would indeed let me enter a decimal point, but when a second number was entered the decimal point would be lost. Can anyone suggest a method I could implement to achieve what I am trying to?
Cheers in advance!
 
     
    