2013-05-17 270 views
0

我試圖計算一個平均值,我從文本字段獲取值並將其乘以標籤的值。計算結果返回0 objective-c

int grade1 = [[self.Cw1Grade text]intValue]; 
    int grade1weight = self.weight1.text.intValue; 

    int a1grade = grade1/100; 
    int a1total = a1grade * grade1weight; 
    NSString *grade1total = [NSString stringWithFormat:@"%d", a1total]; 
    [self.averageLabel setText:grade1total]; 

幫助表示讚賞感謝您的時間

+1

這是一個標準的新手錯誤。當你用整數進行算術運算時,你會得到一個整數結果,向下截斷。所以把96除以100,例如,會給你零。使用浮點。 –

+1

Objective-C是C.學習C.哦,並且請在發佈之前進行搜索。 – matt

+0

另請參見[從整數獲取浮點值](http://stackoverflow.com/q/762953) –

回答

0

不能分割這樣的整數。或者不好,你可以,但你不會得到你所期望的結果,因爲整數除法返回整數(結果將四捨五入到下一個整數)

試試這個:

float a1grade = (float)grade1/100; 

float a1grade = grade1/100.0; 

如果至少有一個操作數是浮點數,那麼您將有浮點除法。但是,在這種情況下,當然你必須將結果存儲在一個浮點型變量中。

另外不要忘記,浮動的字符串格式說明符是%f,而不是%d