2010-09-20 5 views
0

Quelqu'un peut-il m'expliquer pourquoi ma variable appelée activity est 0 lorsqu'elle est définie comme float, mais affiche la valeur correcte lorsqu'elle est définie comme int? J'ai un autre flotteur qui est utilisé pour à peu près la même chose mais fonctionne parfaitement!xcode définissant un problème variable

@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); 
} 
} 

Répondre

3

Vous utilisez

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

Pour afficher vos valeurs. Cela fonctionne si l'activité est un type int comme% d est pour afficher ints. Si vous voulez afficher les flottants, vous avez besoin du formateur flottant% f, comme dans:

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