Поскольку тег говорит о Visual-C ++, кажется, что вы работаете в Windows на Intel или совместимом чипе, поэтому целочисленные значения -0 невозможны. Возможно, у вас есть значение с плавающей запятой, которое отрицательно, но очень близко к 0, например -0.000000000000009, и, возможно, вы печатаете его с точностью до нескольких цифр, например -0.00000. В этом случае вы можете сделать что-то вроде:
if (x > -0.0000001 && x <= 0) x = 0;
Конечно, вы хотите сделать это более стильно, но это дает вам представление.
В основном тексте вашего вопроса не написано Visual C ++, Windows или Intel. Если вы работаете на одном компьютере, возможны целочисленные значения -0. Обычно -0 сравнивается равным +0, поэтому следующий код нормализует целые нули:
if (y == 0) y = 0; // This looks redundant but it turns a -0 into a +0