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);