2011-01-11 58 views
0

我正在計算一個完整的混合數據類型變量的百分比。混合變量數據類型的數學

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

控制檯輸出如下:

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 

爲什麼進步沒有返回 「50」?

回答

2

您在NSLog語句中使用了錯誤的格式字符串。 %d用於整數。記錄浮點數時需要使用%f。 (T here are extra parameters用於限制小數位數等)