iOS int 总是返回 0 [重复]
Posted
技术标签:
【中文标题】iOS int 总是返回 0 [重复]【英文标题】:iOS int always returning 0 [duplicate] 【发布时间】:2014-01-13 22:34:09 【问题描述】:我正在做一个小计算,但它总是返回 0..
int totalBothTeams = [prefs integerForKey:@"totalTimeBothTeams"];
int someCalculation = (totalBetween / totalBothTeams) * 100;
NSLog(@"Time: %i", someCalculation);
有什么想法吗?
【问题讨论】:
整数除法/截断。试试(totalBetween * 100 / totalBothTeams)
你真的应该在学习 C 的时候学过这种东西,而且你应该在深入 Objective-C 之前学习 C。
【参考方案1】:
我假设 totalBetween
小于 totalBothTeams
- 在这种情况下是除法
totalBetween / totalBothTeams
产生整数值0
如果您正在寻找“百分比”类型的答案,您可以先乘以 100,然后再进行除法。你仍然会得到“四舍五入”。或者您可以以双精度完成整个操作并在最后进行强制转换:
(totalBetween * 100) / totalBothTeams
或
(totalBetween * 100.0) / totalBothTeams + 0.5
后者会正确舍入
【讨论】:
【参考方案2】:这是实际发生的情况:
int someCalculation = (totalBetween / totalBothTeams) * 100;
在此,如果totalBothTeams > totalBetween
.. 并且按名称是..
(totalBetween / totalBothTeams)
将返回 0,因为它是整数除法。
和 0*任何东西 =0
所以去(totalBetween * 100 / totalBothTeams);
【讨论】:
以上是关于iOS int 总是返回 0 [重复]的主要内容,如果未能解决你的问题,请参考以下文章