pow、powf
y の累乗 x を計算します。
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
);
パラメーター
x
です。y
指数。
戻り値
xy の値を返します。エラー メッセージはオーバーフローまたはアンダーフローに表示されません。
x と y の値 |
pow の戻り値 |
---|---|
x < > 0 および y = 0.0 |
1 |
x = 0.0 かつ y = 0.0 です。 |
1 |
x = 0.0 および 0 y < |
INF |
解説
pow で必要な浮動小数点値を 1.0E100 などより 264認識しません。
pow にストリーミング SIMD 拡張 2 (SSE2) をストリームに使用する実装されています。SSE2 実装の詳細と使用に関する制限事項については _set_SSE2_enable を参照してください。
C++ ではオーバーロードができるための pow のさまざまなオーバーロードを呼び出します。C. のプログラムではpow は 2 回の倍精度浮動小数点値を常に受け取り二つの値を返します。
pow(int, int) のオーバーロードは使用できなくなります。このオーバーロードを使用するとコンパイラは C2668 エラーを生成する可能性があります。この問題を回避するにはdoublefloatまたは long double の最初のパラメーターをキャストします。
必要条件
ルーチン |
必須ヘッダー |
---|---|
pow, powf |
<math.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
ライブラリ
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 );
}
出力
2.0 to the power of 3.0 is 8.0