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 および 0 y < |
INF |
解説
pow は、264 を超える整数の浮動小数点値 (たとえば、1.0E100) を認識しません。
pow には、ストリーミング SIMD 拡張機能 (SSE2) を使用して実装されています。 SSE2 実装の使い方の詳細および制約については、「_set_SSE2_enable」を参照してください。
C++ ではオーバーロードが可能であるため、pow のさまざまなオーバーロードを呼び出すことができます。 C プログラムでは、pow は常に 2 個の double 値を受け取って、double 値を返します。
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 );
}
出力
2.0 to the power of 3.0 is 8.0