考虑以下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/

10-12 21:52