Ios CGFloat比较错误

Ios CGFloat比较错误,ios,objective-c,quartz-graphics,Ios,Objective C,Quartz Graphics,在我的应用程序中,我正在检查if语句中CGPoint的x值是否不同于零。但是,尽管点的x值为零,应用程序仍会输入if语句。代码如下: CGPoint previousPoint; if (previousPoint.x != 0) { NSLog(@"YES"); CGContextMoveToPoint(context, previousPoint.x, previousPoint.y); CGContextA

在我的应用程序中,我正在检查if语句中CGPoint的x值是否不同于零。但是,尽管点的x值为零,应用程序仍会输入if语句。代码如下:

CGPoint previousPoint;

     if (previousPoint.x != 0) {
            NSLog(@"YES");
            CGContextMoveToPoint(context, previousPoint.x, previousPoint.y);
            CGContextAddLineToPoint(context, 150+(40*[[[self.grades objectAtIndex:i] semesterGPA] doubleValue]), 59+(40*(i+1)));
        }
    }

运行应用程序后,会打印“是”,尽管它不应该像上一个点(0.000000,0.000000)那样。我如何解决这个问题?

请确保
上一个点
是用一些值启动的!并将float与float进行比较,而不是与int进行比较

CGPoint previousPoint;

     if (previousPoint.x != 0.0f) {
            NSLog(@"YES");
            CGContextMoveToPoint(context, previousPoint.x, previousPoint.y);
            CGContextAddLineToPoint(context, 150+(40*[[[self.grades objectAtIndex:i] semesterGPA] doubleValue]), 59+(40*(i+1)));
        }
    }

这是一个浮点值,看起来比较浮点(x)和int(0)。使用0.0Is
previousPoint
是否曾经给定过值?此外,如果(previousPoint.x!=0.0f