次の方法で共有


powpowfpowl

xy 乗を計算します。

構文

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 higher

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
ベース。

y
指数。

戻り値

xy の値を返します。 オーバーフローまたはアンダーフロー時に、エラー メッセージは印刷されません。

xy の戻り値 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 拡張機能 (SSE2) を使用して実装されています。 SSE2 実装の使い方の詳細および制約については、「_set_SSE2_enable」を参照してください。

C++ ではオーバーロードが可能であるため、pow のさまざまなオーバーロードを呼び出すことができます。 C プログラムでは、<tgmath.h> マクロを使用してこの関数を呼び出す場合を除き、pow では常に 2 つの double の値を受け取って double の値を返します。

<tgmath.h>powマクロを使用する場合、引数の型によって、選択される関数のバージョンが決まります。 詳細については、「ジェネリック型数値演算」を参照してください。

pow(int, int) オーバーロードは使用できなくなりました。 このオーバーロードを使用すると、コンパイラは C2668 を生じさせる場合があります。 この問題を回避するには、最初のパラメーターを doublefloat、または long double にキャストします。

最初に、 pow(T, int) オーバーロードは、インライン乗算演算のシーケンスに pow 呼び出しを展開しました。 より高速ですが、精度も大幅に低下しました。 この実装は、Visual Studio 2015 Update 1 で削除されました。 詳細については、「 Conformance improvements in Visual Studio 2015 Update 1」を参照してください。

既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT でのグローバル状態」を参照してください。

要件

ルーチンによって返される値 必須ヘッダー (C) 必須ヘッダー (C++)
powpowfpowl <math.h> <math.h> または <cmath>
pow マクロ <tgmath.h>

互換性の詳細については、「 Compatibility」を参照してください。

// 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

関連項目

数値演算と浮動小数点のサポート
expexpfexpl
loglogflog10log10f
sqrtsqrtfsqrtl
_CIpow