看到的一种整数的方法
if(x < 0 != y < 0)
由此,
double x,y; if( fabs(0.0 - x) < 1e-3 == fabs(0.0 - y) < 1e-3 ) { }
目前想到的比较合适判断方法。
此外这里还有一种强制转换类型求符号位的方法。
/** * Get x sign bit only for little-endian * if x >= 0 then 1 * if x < 0 then -1 */ #define MathUtils_SignBit(x) (((signed char*) &x)[sizeof(x) - 1] >> 7 | 1)