pow函数

num pow(
  1. num x,
  2. num exponent
)

返回xexponent次幂。

如果xint类型且exponent是非负的int,则结果是一个int,否则先将两个参数转换为double类型,然后结果是一个double

对于整数,幂运算的结果始终等于数学上xexponent次幂,仅受可用内存限制。

对于double类型,pow(x, y)处理以下边界情况:

  • 如果y是零(0.0或-0.0),结果始终是1.0。
  • 如果x是1.0,结果始终是1.0。
  • 否则,如果xy是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);