0

无论如何我可以在不使用 ifs 的情况下做到这一点吗?

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

4

1 回答 1

7

怎么样Math.Sign

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

所以计算将是:

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

如果想法是即使Pow操作返回负值也始终使用第一个操作数的符号 (而不是仅在第一个操作数为负时取反),您可以这样做:

Math.Sign(x) * Math.Abs(Math.Pow(x, y))
于 2011-11-11T20:07:37.797 回答