pow、powf、powl
計算 x 的 y 乘冪數。
double pow(
double x,
double y
);
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
float powf(
float x,
float y
);
long double powl(
long double x,
long double y
);
參數
x
基底y
指數。
傳回值
傳回 xy 的値。 錯誤訊息在溢位或反向溢位時不會列印。
x 和 y 的值 |
傳回值 pow |
---|---|
x < > 0 和 y = 0.0 |
1 |
x = 0.0 和 y = 0.0 |
1 |
x = 0.0 和 y < 0 |
INF |
備註
pow 無法辨識整數浮點值大於 264 (例如, 1.0E100)。
pow 會使用 Streaming SIMD Extensions 2(SSE2) 的實作。 如需有關使用 SSE2 實作的詳細資訊和限制,請參閱 _set_SSE2_enable。
因為 C++ 允許多載,您可以呼叫任何 pow的各種多載。 在 C 程式中, pow 一律接受並傳回雙精確度浮點數值。
pow(int, int) 多載無法使用。 如果您使用這個多載,編譯器可能會發出 C2668。 若要避免這個問題,請轉換第一個參數為 double、 float或 long double。
需求
常式 |
必要的標頭 |
---|---|
pow, powf, powl |
<math.h> |
如需其他相容性資訊,請參閱 相容性。
程式庫
C 執行階段程式庫的所有版本。
範例
// crt_pow.c
#include <math.h>
#include <stdio.h>
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 );
}
Output
2.0 to the power of 3.0 is 8.0