double a = 0;
double b = -42;
double result = a * b;
cout << result;
Результат a * b равен -0, но я ожидал 0. Где я ошибся?
Ответ 1
Бит-представление -0.0 и 0.0 отличается, но они одинаковое значение, поэтому -0.0==0.0 вернет true. В вашем случае result - -0.0, потому что один из операндов отрицательный.