2011-01-11 4 views
0

Je calcule un pourcentage complet avec des variables de types de données mixtes.Mathématiques avec types de données variables mixtes

int incompleteCritical = 12; 
int total = 24; 
float progress = 0; 

NSLog(@"Incomplete Total: %d", incompleteCritical); 
NSLog(@"Total Total: %d", total); 

if (total > 0) { 
    progress = ((float)incompleteCritical/(float)total)*100; 
    NSLog(@"Progress: %d", progress); 
} 

La sortie de la console est comme suit:

2011-01-11 10:02:59.993 [18570:207] Incomplete Total: 12 
2011-01-11 10:02:59.993 [18570:207] Total Total: 24 
2011-01-11 10:02:59.994 [18570:207] Progress: 0 

Pourquoi les progrès ne revient pas "50"?

Répondre

2

Vous utilisez la chaîne de format incorrect dans votre instruction NSLog. %d est utilisé pour les entiers. Vous devez utiliser %f lorsque vous enregistrez des nombres à virgule flottante. (T here are extra parameters à utiliser pour limiter le nombre de décimales, etc.)

Questions connexes