C++判断两个double类型双精度浮点数是否同号

看到的一种整数的方法
 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)
原文地址:https://www.cnblogs.com/2018shawn/p/10979292.html