Как насчет с Math.Sign
:
Возвращает значение, указывающее знак числа с плавающей запятой одинарной точности.
Таким образом, вычисление будет следующим:
Math.Sign(x) * Math.Pow(x, y)
Если идея состоит в том, чтобы всегда использовать знак первого операнда даже , когда операция Pow
возвращает отрицательное значение (вместо простого отрицаниярезультат, когда первый операнд отрицательный), вы можете сделать:
Math.Sign(x) * Math.Abs(Math.Pow(x, y))