A linguagem Java está equipada com uma biblioteca abrangente para funções e operações matemáticas. Ela é chamada de classe "Math" e reside no pacote java.lang . A biblioteca Math inclui métodos para operações numéricas fundamentais, trigonometria, encontrar min-max, gerar números aleatórios e operações logarítmicas. No tutorial de hoje, vamos nos concentrar no método Math.pow() , que é usado para calcular potências de números usando uma base e um expoente. Vamos começar. A expressão 'nésima potência de a' pode ser escrita matematicamente como n. Podemos definir os termos nas expressões da seguinte maneira. a - base n - expoente Vamos considerar o expoente. Podemos identificá-lo como o número de vezes que uma operação de multiplicação é repetida. A base é o número que é multiplicado por si mesmo. Usando o Método Math.pow() em Java - 1Vamos agora criar um método Java simples para calcular a potência de um número. Observe que no exemplo a seguir, estamos passando dois argumentos para o método powerFunction() , que são a base e o expoente, respectivamente.

public class Main {
 
   public static void main(String[] args) {
       int result = powerFunction(2, 5);
       System.out.println("2 raised to the power of 5 = " + result);
   }
 
   static int powerFunction(int base, int exponent) {
       int result = 1;
       for (int i = 0; i < exponent; i++) {
           result = base * result;
       }
       return result;
   }
}
Se executarmos o código de exemplo acima, ele retornará 32. Você pode estar imaginando porque não podemos simplesmente escrever base^expoente. Não podemos fazer isso porque Java não tem operador de exponenciação que possamos usar em uma única linha de código. Considerando o código acima, é óbvio que tivemos que gastar um bom tempo escrevendo este método. Além disso, se formos calcular altas potências, o método levará um tempo considerável para concluir esses cálculos, pois estamos usando loops for. Além disso, os loops nos impedirão de realizar cálculos de potência com expoentes fracionários. E este método não possui uma boa complexidade computacional, pois não é muito favorável pois há mais espaço para otimização. Considerando a frequência com que a exponenciação e outras operações matemáticas são usadas pelos programadores, antigamente, os desenvolvedores de Java criaram uma biblioteca chamada 'Math', dedicada a facilitar as operações matemáticas. Portanto, em vez de escrever uma função de potência do zero, podemos aproveitar essa biblioteca incluída no pacote Java Lang.

O que é o método Math.pow e como o usamos?

Math.pow pode ser encontrado no pacote java.lang como um método da biblioteca Math. É usado para calcular a potência dos números, tanto inteiros quanto duplos. Vamos considerar sua sintaxe.

public static double pow(double base, double exponent)
Como podemos ver na sintaxe, o método java.lang.Math.pow() recebe dois argumentos. O primeiro é a base e o segundo é o expoente. Isso retornará o expoente base como sua saída. Vamos ver como podemos chamá-lo.

Elevando um número a uma potência em Java usando Math.pow

Vamos encontrar o valor de 5 4 usando Math.pow .

import java.lang.Math;
public class MyClass{
    public static void main(String []args){
       double answer = Math.pow(5, 4);
// java.lang.Math.pow() method
 
       System.out.println("5 raised to the power of 4 = " + answer);
    }    
}
A saída é 625.0.0.0. Como você pode ver, é um valor duplo. Se você se incomoda com o ponto decimal, podemos facilmente nos livrar dele convertendo o número para um número inteiro da seguinte maneira. Observe que estamos alterando a primeira linha dentro do método main.

 int answer = (int) Math.pow(5, 4);
Agora o resultado é 625. Vamos usar números fracionários para base e expoente e tentar obter uma resposta. Vamos ver qual é o valor de 1,25 4,5 .

import java.lang.Math;
 
public class MyClass {
 
   public static void main(String[] args) {
       double answer = Math.pow(1.25, 4.5);
// java.lang.Math.pow() method
 
       System.out.println("1.25 raised to the power of 4.5 = " + answer);
   }
}
Isso produziria 2,729575167846423. Se você usar uma calculadora, verá que ela retorna a mesma resposta. Vamos passar por mais um exemplo antes de passarmos para a próxima seção. Vamos elevar um número a uma potência negativa e comparar os resultados. Para este exemplo, escolheremos 4 como base e -2 como expoente.

import java.lang.Math;
 
public class MyClass{
 
     public static void main(String []args){
        double answer = Math.pow(4, -2);
// java.lang.Math.pow() method
 
        System.out.println(answer);
     }    
}
Obtemos a saída 0,0625.

Exemplo rápido: como arredondar sua resposta

Digamos, precisamos encontrar o valor de 1,25 4,5 . A resposta é 2,729575167846423. Muitas vezes é necessário arredondar o resultado. Vamos tentar obter uma resposta precisa até a quarta casa decimal. Como fazer isso? E se precisarmos apenas das 4 primeiras casas decimais? Podemos usar o método java.lang.Math.round para isso. No entanto, como Math.round arredonda o valor para o inteiro mais próximo, teremos que multiplicá-lo pelo número de casas decimais e depois arredondar e dividir novamente.

import java.lang.Math;
 
public class MyClass{
 
     public static void main(String []args){
        double answer = Math.pow(1.25, 4.5);
        answer = Math.round(answer*100.0)/100.0;
        
        System.out.println(answer);
     }
     
}
A saída é 2,73.

Como usar Math.pow corretamente

Quando usamos o método java.lang.Math.pow , há algumas coisas que devemos ter em mente.
  1. Se o parâmetro expoente for zero, a saída será 1,0. Isso ocorre porque a potência de zero para qualquer número é definida como um.
  2. Se o parâmetro expoente for um, a saída será o parâmetro base. Isso ocorre porque se você elevar qualquer número à potência de 1, o resultado será igual à base.
  3. Se a base for zero negativo/positivo e o parâmetro do expoente for um número negativo, o resultado será Infinito. (Zeros negativos podem ocorrer devido ao arredondamento de números entre zero e o menor número negativo diferente de zero representável).
  4. Se o parâmetro do expoente for NaN, a saída também será NaN.
Vamos considerar uma instância onde esta 3ª situação pode acontecer.

import java.lang.Math;
 
public class MyClass{
 
     public static void main(String []args){         
        double base = 5;
        double exponent = Double.NaN;
 
        double answer = Math.pow(base, exponent);
 
        System.out.println(answer);
     }     
}
Isso produzirá NaN. Então, se o seu código resultar em NaN, seria sensato verificar se o argumento do expoente é NaN. Caso você esteja se perguntando o que é NaN, significa 'não é um número' e indica que o valor não foi definido. Acreditamos que agora você está pronto para usar lang.Math.pow() em seus aplicativos.

Conclusão

O método java.lang.Math.pow() é uma ótima maneira de encontrar facilmente a potência de vários números, tanto inteiros quanto valores fracionários. Ao contrário de um método que você mesmo pode escrever, ele é altamente otimizado e adequado para uma variedade de aplicativos de tempo crítico. Embora gere todos os resultados como duplos, sempre podemos converter o valor em um número inteiro, como fizemos no exemplo. Além disso, para nossa conveniência, a biblioteca java.lang.Math fornece métodos para arredondar o resultado para o número preferido de casas decimais.