我得到由两点界定的直线的斜率
float slopeXY(CGPoint p1, CGPoint p2)
{
return ((p2.y - p1.y) / (p2.x - p1.x));
}
如果我给它一条零大小的线,
CGPoint p1 = CGPointMake(0, 10);
CGPoint p2 = CGPointMake(0, 10);
float sxy = slopeXY(p1, p2);
我没有得到被零除的错误。
最佳答案
在 OS X 上的默认浮点环境中,浮点除以零不会导致陷阱或异常。 0.0/0.0 将改为返回 NaN 并在 fpscr 中引发无效浮点状态标志。将非零值除以 0.0 将返回无穷大并提高被零除标志。
如果需要,您可以使用 math.h 中定义的 isnan( ) 和 isinf( ) 函数检查这些条件
关于objective-c - 为什么这不会崩溃?我这里不是除以零吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1449109/