pow
, powf
, powl
Calcolare il valore di x
elevato alla potenza di y
.
Sintassi
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
Parametri
x
Base.
y
Esponente.
Valore restituito
Restituisce il valore di x
y
. In caso di overflow o di underflow non viene stampato alcun messaggio di errore.
Valori di x e y |
Valore restituito di pow |
---|---|
x != 0.0 e y == 0.0 |
1 |
x == 0.0 e y == 0.0 |
1 |
x == 0,0 e y < 0 |
INF |
Osservazioni:
pow
non riconosce valori a virgola mobile integrali maggiori di 264 (ad esempio, 1,0E100).
pow
ha un'implementazione che usa SSE2 (Streaming SIMD Extensions 2). Per informazioni e restrizioni sull'uso dell'implementazione SSE2, vedere _set_SSE2_enable
.
Dato che C++ consente l'overload, è possibile chiamare i vari overload di pow
. In un programma C, a meno che non si usi la <tgmath.h>
macro per chiamare questa funzione, pow
accetta sempre due double
valori e restituisce un double
valore.
Se si utilizza la pow
macro da <tgmath.h>
, il tipo dell'argomento determina quale versione della funzione è selezionata. Per informazioni dettagliate, vedere La matematica generica dei tipi.
L'overload pow(int, int)
non è più disponibile. Se si usa questo overload, il compilatore può generare C2668. Per evitare questo problema, eseguire il cast del primo parametro a double
, float
o long double
.
Originariamente, l'overload pow(T, int)
annulla il rollback della pow
chiamata in una sequenza di operazioni di moltiplicazione inline. Mentre era più veloce, era anche molto meno accurato. Questa implementazione è stata rimossa in Visual Studio 2015 Update 1. Per altre informazioni, vedere Miglioramenti della conformità in Visual Studio 2015 Update 1.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Requisiti
Ciclo | Intestazione obbligatoria (C) | Intestazione obbligatoria (C++) |
---|---|---|
pow , powf , powl |
<math.h> |
<math.h> oppure <cmath> |
pow macro |
<tgmath.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
// 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
Vedi anche
Supporto matematico e a virgola mobile
exp
, expf
, expl
log
, logf
, log10
log10f
sqrt
, sqrtf
, sqrtl
_CIpow