Nsstring* s= @"10000000.01";float f = [s floatValue];double d = [s doubleValue];if(f > 10000000){ NSLog(@"Over Value");}else { NSLog(@"OK float");}if(d > 10000000){ NSLog(@"Over value");}else { NSLog(@"OK Double");}
响应如下.
2013-04-19 17:07:29.284 float[2991:907] OK float2013-04-19 17:07:29.287 float[2991:907] Over value
为什么浮点值更改为10000000.00而不是10000000.01?
解决方法 float是32位,而double是64位.浮点数的有效数字少于双倍.浮点值不足以容纳10000000.01的10位数字.
另请参阅Difference between float and double了解更多详情.那就是C/C++,但它也适用于Objective-C.
总结以上是内存溢出为你收集整理的ios – float和double之间有什么区别?全部内容,希望文章能够帮你解决ios – float和double之间有什么区别?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)