4

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

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

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

    [self updateWithDTime:dt];
}

4

1 回答 1

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);
于 2012-10-26T14:17:28.440 回答