Condividi tramite


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 xy. 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, log10log10f
sqrt, sqrtf, sqrtl
_CIpow