iOS int总是返回0

我正在做一个小计算,但总是返回0 ..

int totalBothTeams = [prefs integerForKey:@"totalTimeBothTeams"]; int someCalculation = (totalBetween / totalBothTeams) * 100; NSLog(@"Time: %i", someCalculation); 

有任何想法吗?

我假设totalBetween不足totalBothTeams – 在这种情况下的分工

 totalBetween / totalBothTeams 

导致整数值为0

如果你正在寻找一个“百分比”types的答案,你可以乘以100,然后进行除法。 你仍然会被“舍入”。 或者你可以用双精度完成整个事情,并在最后施放:

 (totalBetween * 100) / totalBothTeams 

要么

 (totalBetween * 100.0) / totalBothTeams + 0.5 
  • 后者会正确地回合

这是实际发生的事情:

 int someCalculation = (totalBetween / totalBothTeams) * 100; 

在这里,如果totalBothTeams > totalBetween ..和名字是..

(totalBetween / totalBothTeams)将返回0,因为它是整数除法。

和0 *任何东西= 0

所以去(totalBetween * 100 / totalBothTeams);