2011-11-11 1 views

ответ

7

Как насчет с Math.Sign:

Возвращает значение, указывающее знак одинарной точности чисел с плавающей точкой.

Таким образом, вычисление будет:

Math.Sign(x) * Math.Pow(x, y) 

Если идея состоит в том, чтобы всегда использовать знак первого операнда даже когда Pow операция возвращает отрицательное значение (вместо того, чтобы просто отрицая результат когда первый операнд отрицательный), вы можете сделать:

Math.Sign(x) * Math.Abs(Math.Pow(x, y)) 
+2

x отрицательно и y нечетно потеряет знак –

+1

Это неправильно. Добавьте абс() вокруг x –

+0

@Austin: Хорошо, я обратился к этому, полагая, что это то, чего хочет OP. Это не ясно в любом случае. – Ani