本文分享一下开发过程中遇到的坑,关于NSString数据类型转float单精度浮点型数据时,由于计算机二进制运算“根号2”时会产生误差,将会对强转数据造成误差,使计算出的结果比实际少1个单位,如下代码所示:
NSString *str = @"0.94";
CGFloat f = [str floatValue];//f参与运算时,f = 0.93999999761581421;
NSLog(@"输出浮点型:%f",f);//f打印输出时,log输出0.940000
所以千万注意强转NSString成基本数据类型,参与运算时需要进行一些特殊处理,具体如何根据实际情况来处理;
如果本文对您有帮助,请不吝点赞;荆轲刺秦王!