ios – float和double之间有什么区别?

前端之家收集整理的这篇文章主要介绍了ios – float和double之间有什么区别?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我运行以下代码时,
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 Float
2013-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相关文章