使用Math.Pow并保持标志?

时间:2011-11-11 20:06:13

标签: c# pow

无论如何我可以不使用ifs来做到这一点吗?

就像我想做Math.Pow(-5f,2f)以-25而不是25?

1 个答案:

答案 0 :(得分:7)

Math.Sign如何:

  

返回表示单精度符号的值   浮点数。

所以计算将是:

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

如果想法是在Pow操作返回负值时(而不是仅在第一个操作数为负时否定结果)时始终使用第一个操作数偶数的符号,你可以这样做:

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