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 に答える