Math.Pow(Double, Double) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Retorna um número especificado elevado à potência especificada.
public:
static double Pow(double x, double y);
public static double Pow (double x, double y);
static member Pow : double * double -> double
Public Shared Function Pow (x As Double, y As Double) As Double
Parâmetros
- x
- Double
Um número de ponto flutuante de precisão dupla a ser elevado a uma potência.
- y
- Double
Um número de ponto flutuante de precisão dupla que especifica uma potência.
Retornos
O número x
elevado à potência y
.
Exemplos
O exemplo a seguir usa o Pow método para calcular o valor que resulta da elevação de 2 para uma potência que varia de 0 a 32.
int value = 2;
for (int power = 0; power <= 32; power++)
Console.WriteLine($"{value}^{power} = {(long)Math.Pow(value, power):N0} (0x{(long)Math.Pow(value, power):X})");
// The example displays the following output:
// 2^0 = 1 (0x1)
// 2^1 = 2 (0x2)
// 2^2 = 4 (0x4)
// 2^3 = 8 (0x8)
// 2^4 = 16 (0x10)
// 2^5 = 32 (0x20)
// 2^6 = 64 (0x40)
// 2^7 = 128 (0x80)
// 2^8 = 256 (0x100)
// 2^9 = 512 (0x200)
// 2^10 = 1,024 (0x400)
// 2^11 = 2,048 (0x800)
// 2^12 = 4,096 (0x1000)
// 2^13 = 8,192 (0x2000)
// 2^14 = 16,384 (0x4000)
// 2^15 = 32,768 (0x8000)
// 2^16 = 65,536 (0x10000)
// 2^17 = 131,072 (0x20000)
// 2^18 = 262,144 (0x40000)
// 2^19 = 524,288 (0x80000)
// 2^20 = 1,048,576 (0x100000)
// 2^21 = 2,097,152 (0x200000)
// 2^22 = 4,194,304 (0x400000)
// 2^23 = 8,388,608 (0x800000)
// 2^24 = 16,777,216 (0x1000000)
// 2^25 = 33,554,432 (0x2000000)
// 2^26 = 67,108,864 (0x4000000)
// 2^27 = 134,217,728 (0x8000000)
// 2^28 = 268,435,456 (0x10000000)
// 2^29 = 536,870,912 (0x20000000)
// 2^30 = 1,073,741,824 (0x40000000)
// 2^31 = 2,147,483,648 (0x80000000)
// 2^32 = 4,294,967,296 (0x100000000)
open System
let value = 2
for power = 0 to 32 do
printfn $"{value}^{power} = {Math.Pow(value, power) |> int64:N0} (0x{Math.Pow(value, power) |> int64:X})"
// The example displays the following output:
// 2^0 = 1 (0x1)
// 2^1 = 2 (0x2)
// 2^2 = 4 (0x4)
// 2^3 = 8 (0x8)
// 2^4 = 16 (0x10)
// 2^5 = 32 (0x20)
// 2^6 = 64 (0x40)
// 2^7 = 128 (0x80)
// 2^8 = 256 (0x100)
// 2^9 = 512 (0x200)
// 2^10 = 1,024 (0x400)
// 2^11 = 2,048 (0x800)
// 2^12 = 4,096 (0x1000)
// 2^13 = 8,192 (0x2000)
// 2^14 = 16,384 (0x4000)
// 2^15 = 32,768 (0x8000)
// 2^16 = 65,536 (0x10000)
// 2^17 = 131,072 (0x20000)
// 2^18 = 262,144 (0x40000)
// 2^19 = 524,288 (0x80000)
// 2^20 = 1,048,576 (0x100000)
// 2^21 = 2,097,152 (0x200000)
// 2^22 = 4,194,304 (0x400000)
// 2^23 = 8,388,608 (0x800000)
// 2^24 = 16,777,216 (0x1000000)
// 2^25 = 33,554,432 (0x2000000)
// 2^26 = 67,108,864 (0x4000000)
// 2^27 = 134,217,728 (0x8000000)
// 2^28 = 268,435,456 (0x10000000)
// 2^29 = 536,870,912 (0x20000000)
// 2^30 = 1,073,741,824 (0x40000000)
// 2^31 = 2,147,483,648 (0x80000000)
// 2^32 = 4,294,967,296 (0x100000000)
Public Module Example
Public Sub Main
Dim value As Integer = 2
For power As Integer = 0 To 32
Console.WriteLine("{0}^{1} = {2:N0} (0x{2:X})", _
value, power, CLng(Math.Pow(value, power)))
Next
End Sub
End Module
' The example displays the following output:
' 2^0 = 1 (0x1)
' 2^1 = 2 (0x2)
' 2^2 = 4 (0x4)
' 2^3 = 8 (0x8)
' 2^4 = 16 (0x10)
' 2^5 = 32 (0x20)
' 2^6 = 64 (0x40)
' 2^7 = 128 (0x80)
' 2^8 = 256 (0x100)
' 2^9 = 512 (0x200)
' 2^10 = 1,024 (0x400)
' 2^11 = 2,048 (0x800)
' 2^12 = 4,096 (0x1000)
' 2^13 = 8,192 (0x2000)
' 2^14 = 16,384 (0x4000)
' 2^15 = 32,768 (0x8000)
' 2^16 = 65,536 (0x10000)
' 2^17 = 131,072 (0x20000)
' 2^18 = 262,144 (0x40000)
' 2^19 = 524,288 (0x80000)
' 2^20 = 1,048,576 (0x100000)
' 2^21 = 2,097,152 (0x200000)
' 2^22 = 4,194,304 (0x400000)
' 2^23 = 8,388,608 (0x800000)
' 2^24 = 16,777,216 (0x1000000)
' 2^25 = 33,554,432 (0x2000000)
' 2^26 = 67,108,864 (0x4000000)
' 2^27 = 134,217,728 (0x8000000)
' 2^28 = 268,435,456 (0x10000000)
' 2^29 = 536,870,912 (0x20000000)
' 2^30 = 1,073,741,824 (0x40000000)
' 2^31 = 2,147,483,648 (0x80000000)
' 2^32 = 4,294,967,296 (0x100000000)
Comentários
A tabela a seguir indica o valor retornado quando vários valores ou intervalos de valores são especificados para os x
parâmetros e y
. Para obter mais informações, consulte Double.PositiveInfinity, Double.NegativeInfinity e Double.NaN.
x | a | Retornar valor |
---|---|---|
Qualquer valor, exceto NaN |
±0 | 1 |
NaN |
±0 | 1 (NaN no .NET Framework)* |
NaN |
Qualquer valor, exceto 0 | NaN * |
±0 | < 0 e um inteiro ímpar |
NegativeInfinity ou PositiveInfinity |
±0 | NegativeInfinity |
PositiveInfinity |
±0 | PositiveInfinity |
+0 |
±0 | > 0 e um inteiro ímpar | ±0 |
-1 |
NegativeInfinity ou PositiveInfinity |
1 |
+1 | Qualquer valor, exceto NaN |
1 |
+1 | NaN |
1 (NaN no .NET Framework)* |
Qualquer valor exceto 1 | NaN |
NaN * |
-1 < x < 1 | PositiveInfinity |
+0 |
< -1 ou > 1 | PositiveInfinity |
PositiveInfinity |
-1 < x < 1 | NegativeInfinity |
PositiveInfinity |
< -1 ou > 1 | NegativeInfinity |
+0 |
PositiveInfinity |
< 0 | +0 |
PositiveInfinity |
> 0 | PositiveInfinity |
NegativeInfinity |
< 0 e finito e inteiro ímpar | -0 |
NegativeInfinity |
> 0 e finito e inteiro ímpar | NegativeInfinity |
NegativeInfinity |
< 0 e finito e não um inteiro estranho | +0 |
NegativeInfinity |
> 0 e finito e não um inteiro estranho | PositiveInfinity |
±0 | < 0 e finito e não um inteiro estranho | PositiveInfinity |
±0 | > 0 e finito e não um inteiro estranho | +0 |
< 0, mas não NegativeInfinity |
Não inteiro finito | NaN |
* Essas linhas não aparecem no conjunto completo de regras para pow
, conforme definido pelo Padrão IEEE para Floating-Point aritmética. Eles estão incluídos aqui porque o .NET desabilita exceções de ponto flutuante do IEEE 754 e, portanto, não diferencia entre qNaN
(NaN silencioso) e sNaN
(sinalizando NaN). A especificação do IEEE 754 permite essa desabilitação de exceção.
Esse método chama o runtime C subjacente e o resultado exato ou o intervalo de entrada válido podem ser diferentes entre diferentes sistemas operacionais ou arquiteturas.