Используйте Math.Pow и держите знак? - PullRequest
0 голосов
/ 12 ноября 2011

Могу ли я в любом случае сделать это без использования ifs?

Как я хочу сделать Math.Pow(-5f,2f), чтобы получить значение -25, а не 25?

1 Ответ

7 голосов
/ 12 ноября 2011

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

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

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

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

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

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