我在代码中遇到一种情况,其中一个函数返回一个double,并且此double可能为零,负零或完全为另一个值。我需要区分零和负零,但默认的双重比较不需要。由于双精度格式,C ++不允许使用按位运算符比较双精度,因此我不确定如何继续。如何区分两者?
最佳答案
调用std::signbit()
确定符号位的状态。
我在代码中遇到一种情况,其中一个函数返回一个double,并且此double可能为零,负零或完全为另一个值。我需要区分零和负零,但默认的双重比较不需要。由于双精度格式,C ++不允许使用按位运算符比较双精度,因此我不确定如何继续。如何区分两者?
最佳答案
调用std::signbit()
确定符号位的状态。