当我运行以下代码时,
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");
}
Run Code Online (Sandbox Code Playgroud)
回应如下.
2013-04-19 17:07:29.284 float[2991:907] OK Float
2013-04-19 17:07:29.287 float[2991:907] Over value
Run Code Online (Sandbox Code Playgroud)
为什么浮动值变为10000000.00而不是10000000.01?
rma*_*ddy 38
float
是32位而double
64位.float的有效数字少于double.
一个float
值不存储足以容纳您的10位数字10000000.01
.
另请参阅float和double之间的区别以获取更多详细信息.这与C/C++有关,但它也适用于Objective-C.
归档时间: |
|
查看次数: |
26364 次 |
最近记录: |