pow
, , powf
powl
x
Oblicza wartość podniesioną do potęgi .y
Składnia
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
Parametry
x
Baza.
y
Wykładnik.
Wartość zwracana
Zwraca wartość x
y
. Żaden komunikat o błędzie nie jest drukowany na przepełnieniu lub niedopełnieniu.
Wartości i x y |
Zwracana wartość pow |
---|---|
x != 0.0 i y == 0.0 |
1 |
x == 0.0 i y == 0.0 |
1 |
x == 0.0 i y < 0 |
INF |
Uwagi
pow
nie rozpoznaje całkowitych wartości zmiennoprzecinkowych większych niż 264 (na przykład 1.0E100).
pow
ma implementację korzystającą z rozszerzeń SIMD przesyłania strumieniowego 2 (SSE2). Aby uzyskać informacje i ograniczenia dotyczące korzystania z implementacji SSE2, zobacz _set_SSE2_enable
.
Ponieważ język C++ umożliwia przeciążenie, można wywołać dowolne z różnych przeciążeń klasy pow
. W programie języka C, chyba że używasz makra <tgmath.h>
do wywołania tej funkcji, pow
zawsze przyjmuje dwie double
wartości i zwraca double
wartość.
Jeśli używasz makra pow
z <tgmath.h>
, typ argumentu określa, która wersja funkcji jest zaznaczona. Aby uzyskać szczegółowe informacje, zobacz Typy ogólne matematyczne .
pow(int, int)
Przeciążenie nie jest już dostępne. Jeśli używasz tego przeciążenia, kompilator może emitować C2668. Aby uniknąć tego problemu, należy rzutować pierwszy parametr na double
, float
lub long double
.
pow(T, int)
Pierwotnie przeciążenia wyrejestrowali pow
wywołanie do sekwencji operacji mnożenia śródwierszowego. Chociaż było to szybsze, było to również znacznie mniej dokładne. Ta implementacja została usunięta w programie Visual Studio 2015 Update 1. Aby uzyskać więcej informacji, zobacz Ulepszenia zgodności w programie Visual Studio 2015 Update 1.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Wymagania
Procedura | Wymagany nagłówek (C) | Wymagany nagłówek (C++) |
---|---|---|
pow , , powf powl |
<math.h> |
<math.h> lub <cmath> |
pow Makro |
<tgmath.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// 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
Zobacz też
Obsługa obliczeń matematycznych i zmiennoprzecinkowych
exp
, , expf
expl
log
, , logf
, , log10
log10f
sqrt
, , sqrtf
sqrtl
_CIpow