Really? Negative zero?!
double Vector2D::GetFacingAngle(const Vector2D& target, const Vector2D& source) {
a2de::Vector2D facingVec(Vector2D(source) - Vector2D(target));
//Negating 'y' argument to account for flipped nature of 'y' screen coordinates.
double result = std::atan2(-facingVec.GetY(), facingVec.GetX());
//Which causes -0.0 as a possible result when source is right of target at the same 'y' coordinate.
if(a2de::Math::IsEqual(result, -0.0)) return 0.0;
return result;
}
Is this a common behavior? (Similar to subtracting 'y' coordinates for 'up' movement in screen coordinates contrary to Cartesian coordinates.)

-0.0 == 0.0according to IEEE 754 – Maik Semder Aug 7 '12 at 11:44