计算 x 的 y 次幂。
语法
double pow( double x, double y );
float powf( float x, float y );
long double powl( long double x, long double y );
define pow(X, Y) // Requires C11 or later
double pow( double x, int y ); // C++ only
float pow( float x, float y ); // C++ only
float pow( float x, int y ); // C++ only
long double pow( long double x, long double y ); // C++ only
long double pow( long double x, int y ); // C++ only
参数
x
Base。
y
Exponent。
返回值
返回 xy 的值。 在溢出或下溢时不输出错误消息。
x 和 y 的值
pow 的返回值
x != 0.0 且 y == 0.0
1
x == 0.0 且 y == 0.0
1
x == 0.0 且 y< 0
INF
备注
pow 无法识别大于 264 的整型浮点值(如 1.0E100)。
pow 具有使用流式处理 SIMD 扩展 2 (SSE2) 的实现。 有关使用 SSE2 实现的信息和限制,请参阅 _set_SSE2_enable。
由于 C++ 允许重载,因此你可以调用 pow 的任何不同重载。 在 C 程序中,除非使用
如果使用
pow(int, int) 将不再可用。 如果使用此重载,则编译器可能发出 C2668。 若要避免此问题,将第一个参数转换为 double、float 或 long double。
最初,pow(T, int) 重载将 pow 调用展开到一系列内联乘法运算中。 虽然速度更快,但它也不太准确。 Visual Studio 2015 更新 1 中移除了此实现。 有关详细信息,请参阅 Visual Studio 2015 更新 1 中的符合性改进。
默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态。
要求
例程
必需的标头 (C)
必需的标头 (C++)
.- .
pow 宏
有关兼容性的详细信息,请参阅 兼容性。
示例
// crt_pow.c
#include
#include
int main( void )
{
double x = 2.0, y = 3.0, z;
z = pow( x, y );
printf( "%.1f to the power of %.1f is %.1f\n", x, y, z );
}
2.0 to the power of 3.0 is 8.0
另请参阅
数学和浮点支持
.- .
.- .
_CIpow