pow函数
返回x
的exponent
次幂。
如果x
是int类型且exponent
是非负的int,则结果是一个int,否则先将两个参数转换为double类型,然后结果是一个double。
对于整数,幂运算的结果始终等于数学上x
的exponent
次幂,仅受可用内存限制。
对于double类型,pow(x, y)
处理以下边界情况:
- 如果
y
是零(0.0或-0.0),结果始终是1.0。 - 如果
x
是1.0,结果始终是1.0。 - 否则,如果
x
或y
是NaN,则结果为NaN。 - 如果
x
是负数(但不是-0.0)且exponent
是有限非整数,则结果是NaN。 - 如果
x
是Infinity且y
是负数,则结果是0.0。 - 如果
x
是Infinity且y
是正数,则结果是Infinity。 - 如果
x
是0.0且y
是负数,则结果是Infinity。 - 如果
x
是0.0且y
是正数,则结果是0.0。 - 如果
x
是-Infinity或-0.0且y
是奇整数,则结果是-pow(-x ,y)
。 - 如果
x
是-Infinity或-0.0且y
不是奇整数,则结果与pow(-x , y)
相同。 - 如果
y
是Infinity且x
的绝对值小于1,则结果是0.0。 - 如果
y
是Infinity且x
是-1,则结果是1.0。 - 如果
y
是Infinity且x
的绝对值大于1,则结果是Infinity。 - 如果
y
是-Infinity,则结果是1/pow(x, Infinity)
。
这对应于IEEE Standard 754-2008中定义的pow
函数。
请注意,结果可能溢出。如果整数以64位数字表示,整数结果可能会截断,而double结果可能会溢出到正的或负的double.infinity。
实现
external num pow(num x, num exponent);