NSNumber doubleValue返回NaN

时间:2012-09-08 02:26:47

标签: objective-c nsnumber

如下面的屏幕截图所示,nsdt的值约为0.033,但doubleValue方法返回了NaN。为什么不返回0.033?

-(void) updateWithDTNSTime:(NSNumber*) nsdt;
{
    double dt = [nsdt doubleValue];

    if(isnan(dt))
    {
        printf("nan\n");
    }

    [self updateWithDTime:dt];
}

1 个答案:

答案 0 :(得分:0)

检查创建nsdt变量的代码。它应该是这样的:

nsdt - [NSNumber numberWithDouble:0.033];

如果您的代码如下所示,您将获得0:

int x = 0.033;
NSNumber *test = [NSNumber numberWithDouble:x];
double y = [test doubleValue];
NSLog(@"y= %f", y);