2016-01-13 91 views
1

我计算数字的百分比,像这样:CGFloat的返回+ Inf文件

CGFloat total = 9; 
CGFloat onePercent = total/100; 

CGFloat otherNum = 2; 
CGFloat otherNumPercentage = otherNum/onePercent; 

结果应该是22.2重复。但是,它返回+Inf,我相信它是无限的。

我不认为它会被视为无限大,因为22-23当然不算为无穷大,然而是否因为永远反复出现.2

不知道如何处理这个,我怎么能得到我的预期结果?

谢谢。

+1

写成上面那样的代码?你确定这些数字都不是整数吗? –

+2

当你使用常数即'9'时,我一直认为你需要指定'9.0f'来表示它是'float'而不是'int'? – Flexicoder

+0

@Flexicoder就是它!奇怪的是,我们不得不直接把它作为你指定的浮点数,但是这确实解决了这个问题。谢谢你的投入。随意留下它作为答案,我会给它一个答案! –

回答

1

当您使用常数即9你需要指定9.0f以表明它是一个float而非int

+2

只有当编译器不清楚类型时,这才是真实的。如果它不是像这里那样的变量定义的一部分。另外,在'total/100'等算术表达式中,如果total不是int,那么'100'将转换为total类型。 – SmokeDispenser

+0

@JanGreve谢谢澄清 – Flexicoder