本篇博客算是对OC基础知识的一个回顾与复习吧,内容是与除法相关的。
最近在做项目的时候要用到一个百分比,可我最后得到的百分比总是0,于是我有点怀疑人生了。
上代码看:
CGFloat x1= 100 / 1000;
CGFloat x2= (CGFloat)100 / 1000;
CGFloat x3= (CGFloat)(100 / 1000);
NSLog(@"%f", x1);
NSLog(@"%f", x2);
NSLog(@"%f", x3);
在利用上面代码输出x1/x2/x3三个变量的时候,发现输出结果分别为:
2016-10-27 13:07:54.239 圆形进度条[1003:27500] 0.000000
2016-10-27 13:07:55.333 圆形进度条[1003:27500] 0.100000
2016-10-27 13:12:20.119 圆形进度条[1003:27500] 0.000000
解释:100/1000是int类型数据相除,得到的是int类型的结果为0,CGFloat不过是将int类型的0转化为了float类型的0。 (CGFloat)100 / 1000;是利用float类型的数据100去除int类型的1000得到的是float类型。 (CGFloat)(100 / 1000);同CGFloat x1= 100 / 1000;的原理是相同的。