考虑以下C++代码:
double someZero = 0;
std::cout << 0 - someZero << '\n'; // prints 0
std::cout << -someZero << std::endl; // prints -0
问题就来了:负零有什么用,并且应该在防御上避免它(即用减法而不是在变量上加上减号)?
最佳答案
从维基百科:
第一个引用文献是W. Kahan撰写的“复杂的基本函数的分枝或关于Nothing's Sign Bit的很多文章”,可以下载here。
该论文中的一个示例是1/(+0)
与1/(-0)
。在这里,零的符号有很大的不同,因为第一个表达式等于+inf
,第二个表达式等于-inf
。
关于c++ - 用于负零浮点值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7946913/