Question: Consider the following C++ code:

```
double someZero = 0;
std::cout << 0 - someZero << '\n';   // prints 0
std::cout << -someZero << std::endl; // prints -0

```

The question arises: what is negative zero good for, and should it be defensively avoided (i.e. use subtraction instead of smacking a minus onto a variable)?

Answer: 
In addition 
Signed Zero Good For :

The zeroes can be considered as a variant of the extended real number line such that 1/−0 = −∞ and 1/+0 = +∞, division by zero is only undefined for ±0/±0.

Negatively signed zero echoes the mathematical analysis concept of approaching 0 from below as a one-sided limit, which may be denoted by x → 0−, x → 0−, or x → ↑0. The notation "−0" may be used informally to denote a small negative number that has been rounded to zero. The concept of negative zero also has some theoretical applications in statistical mechanics and other disciplines
Negative zero has for example some use when handling complex numbers...

In everyday use one should mostly avoid the negative zero.

Some links with information regarding background/uses/pitfalls of "negative zero":  

* <http://en.wikipedia.org/wiki/Signed_zero>
* <http://en.wikipedia.org/wiki/Floating_point#Signed_zero>
* <http://en.wikipedia.org/wiki/Branch_cut>
* <http://connect.microsoft.com/VisualStudio/feedback/details/344366/negative-zero-behavior-between-c-and-c-code-is-different>
* <http://connect.microsoft.com/VisualStudio/feedback/details/292276/in-vs2005-c-zero-reported-as-negative-zero-for-double-type>
* [C++ ceil and negative zero](https://stackoverflow.com/questions/5986875/c-ceil-and-negative-zero)