使用Math.Pow并保持标志?

Lev*_*i H 0 c# pow

无论如何我可以不使用ifs吗?

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

Ani*_*Ani 7

怎么样Math.Sign:

返回一个值,指示单精度浮点数的符号.

所以计算将是:

Math.Sign(x) * Math.Pow(x, y)
Run Code Online (Sandbox Code Playgroud)

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

Math.Sign(x) * Math.Abs(Math.Pow(x, y))
Run Code Online (Sandbox Code Playgroud)

  • x是负数,y是奇数会丢失符号 (2认同)