Liebe Leute,
ich bin gerade dabei mein erstes iOS-Projekt zu entwickeln: und zwar einen Taschenrechner. Jedoch kann mein Programm nur mit ganzen Zahlen rechnen. Somit, wenn ich 1/2 eingebe, kommt als Ausgabe eine 0. Hier mein Code:
ViewController.h
ViewController.m
Nun zu meiner Frage. Ich habe einen Button für das Komma angelegt. Den Button lege ich mit einer Aktion an (schätze ich einmal), aber wie muss ich den Code verändern, sodass Kommazahlen angezeigt und berechnet werden können?
Danke für eure Mühe
Xcode42
ich bin gerade dabei mein erstes iOS-Projekt zu entwickeln: und zwar einen Taschenrechner. Jedoch kann mein Programm nur mit ganzen Zahlen rechnen. Somit, wenn ich 1/2 eingebe, kommt als Ausgabe eine 0. Hier mein Code:
ViewController.h
Code:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *anzeige;
@property (assign, nonatomic) BOOL benutzerTipptGerade;
@property (assign, nonatomic) NSInteger wartendeZahl;
@property (strong, nonatomic) NSString *wartendeOperation;
- (IBAction)zahlGedrueckt:(id)sender;
- (IBAction)operationGedrueckt:(id)sender;
- (NSString*) berechne: (NSString*) operation mitDerZahl: (NSInteger) zahl;
@end
ViewController.m
Code:
#import "ViewController.h"
@implementation ViewController
@synthesize anzeige;
@synthesize benutzerTipptGerade = _benutzerTipptGerade;
@synthesize wartendeZahl = _wartendeZahl;
@synthesize wartendeOperation = _wartendeOperation;
- (NSString*) berechne: (NSString*) operation mitDerZahl: (NSInteger) zahl
{
if ([operation isEqualToString:@"C"]) {
return @"0";
} else if ([operation isEqualToString:@"AC"]) {
self.wartendeZahl = 0;
self.wartendeOperation = nil;
return @"0";
} else if ([self.wartendeOperation isEqualToString:@"+"]) {
zahl = self.wartendeZahl + zahl;
} else if ([self.wartendeOperation isEqualToString:@"-"]) {
zahl = self.wartendeZahl - zahl;
} else if ([self.wartendeOperation isEqualToString:@"*"]) {
zahl = self.wartendeZahl * zahl;
} else if ([self.wartendeOperation isEqualToString:@"/"]) {
if (zahl !=0) {
zahl = self.wartendeZahl / zahl;
} else {
NSLog(@"Divison durch Null");
return @"Fehler";
}
}
self.wartendeZahl = zahl;
self.wartendeOperation = operation;
return [NSString stringWithFormat:@"%d", zahl];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
#pragma mark - View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)viewDidUnload
{
[self setAnzeige:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
}
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
- (IBAction)zahlGedrueckt:(id)sender
{
if (self.benutzerTipptGerade == NO) {
self.anzeige.text = @"";
self.benutzerTipptGerade = YES;
}
self.anzeige.text = [self.anzeige.text stringByAppendingString:[sender currentTitle]];
}
- (IBAction)operationGedrueckt:(id)sender
{
self.benutzerTipptGerade = NO;
self.anzeige.text = [self berechne:[sender currentTitle] mitDerZahl:[self.anzeige.text intValue]];
}
@end
Nun zu meiner Frage. Ich habe einen Button für das Komma angelegt. Den Button lege ich mit einer Aktion an (schätze ich einmal), aber wie muss ich den Code verändern, sodass Kommazahlen angezeigt und berechnet werden können?
Danke für eure Mühe
Xcode42