views:

54

answers:

1

Hi there

Can someone please explain to me why my variable called activity is 0 when defined as a float, but displays the correct value when defined as an int? I have another float which is used for pretty much the same thing but works perfectly!

@implementation AppPrefsViewController
float age;
int activity;

...

-(void) updateAValues{
 if (selectedActivityUnit == 0){
  activity = 50; 
  NSLog(@"activity = %d",activity);
 }

 if (selectedActivityUnit == 1){
  activity = 75;    
  NSLog(@"activity = %d",activity);
 } 
}


....

- (void)updateLabel {
 if (selectedUnit == 0) {
  subView.hidden = YES;
  age = 1;
  NSLog(@"age = %d",age);
 }

 if (selectedUnit == 1) {
  subView.hidden = YES;
  age = 2;
  NSLog(@"age = %d",age);
 }

 if (selectedUnit == 2) {
  subView.hidden = NO;
  age = 3;
  NSLog(@"age = %d",age);
 }
}
+3  A: 

You're using

NSLog(@"activity = %d", activity);

To display your values. This works if activity is an int type as %d is for displaying ints. If you want to display floats you need the float formater %f, as in:

NSLog(@"activity = %f", activity);
No one in particular