在我的应用程序中,我正在检查CGPoint的x值是否在if语句中不同于零。但是,尽管该点的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)));
        }
    }

运行应用程序后,虽然不应该打印“YES”(因为以前的积分是(0.000000,0.000000)),我该如何解决呢?

最佳答案

确保previousPoint以一定的值启动!并比较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)));
        }
    }

关于ios - CGFloat比较错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15587492/

10-12 22:01