В любом случае я могу это сделать без использования ifs?Используйте Math.Pow и держите знак?
Как я хочу сделать Math.Pow(-5f,2f)
, чтобы выйти как -25 не 25?
В любом случае я могу это сделать без использования ifs?Используйте Math.Pow и держите знак?
Как я хочу сделать Math.Pow(-5f,2f)
, чтобы выйти как -25 не 25?
Как насчет с Math.Sign
:
Возвращает значение, указывающее знак одинарной точности чисел с плавающей точкой.
Таким образом, вычисление будет:
Math.Sign(x) * Math.Pow(x, y)
Если идея состоит в том, чтобы всегда использовать знак первого операнда даже когда Pow
операция возвращает отрицательное значение (вместо того, чтобы просто отрицая результат когда первый операнд отрицательный), вы можете сделать:
Math.Sign(x) * Math.Abs(Math.Pow(x, y))
x отрицательно и y нечетно потеряет знак –
Это неправильно. Добавьте абс() вокруг x –
@Austin: Хорошо, я обратился к этому, полагая, что это то, чего хочет OP. Это не ясно в любом случае. – Ani
Почему вы ожидаете, что оно будет -25? Это (Sqr of -5) должно быть 25. –