pow函数

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

返回xexponent次幂。

如果x是一个int并且exponent是一个非负的int,则结果是一个int,否则两个参数首先转换为double类型,结果是double类型。

对于整数,幂总是等于xexponent次幂的数学结果,只受可用内存的限制。

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

  • 如果y是零(0.0或-0.0),则结果始终是1.0。
  • 如果x是1.0,则结果始终是1.0。
  • 否则,如果x是NaN,则结果为NaN。
  • 如果x是负数(但不是-0.0)且y是有限非整数,则结果是NaN。
  • 如果x是Infinity且y是负数,则结果是0.0。
  • 如果x是Infinity且y是正数,则结果是Infinity。
  • 如果x是0.0且是负数,则结果是Infinity。
  • 如果是0.0且y是正数,则结果是0.0。
  • 如果x是-Infinity或-0.0且y是奇整数,则结果是-pow(-x ,y)
  • 如果x是-Infinity或-0.0且不是奇整数,则结果与pow(-x , y)相同。
  • 如果y是Infinity且x的绝对值小于1,则结果是0.0。
  • 如果y是Infinity且是-1,则结果是1.0。
  • 如果是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);