更好的方法来测试符号变化?

时间:2012-12-22 19:58:09

标签: objective-c math

当循环一系列数字(例如0.1,-0.5,1.0,-0.33,......)时,我想要一种方法来测试当前数字是否与前一个数字不同。我的代码在下面但是 - 必须有一个更好的方法..

-(bool)signChanged:(float)prev :(float)value{

    // our value is negative
    if(value < 0.0){

        // previous value is positive or zero
        if(prev >= 0.0) return true;

    // our value is positive
    }else{

        if(prev < 0.0) return true;
    }

    return false;
}

2 个答案:

答案 0 :(得分:6)

对于此类快速验证,请使用宏而不是方法:

#define SAME_SIGN(v1,v2) (v1>=0)==(v2>=0)

答案 1 :(得分:1)

将您的值乘以之前的值。如果结果为正,则符号未更改。否则,它有。