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