Operações Matemáticas em Java com a Classe Math
Para a realização de diversas operações matemáticas, a linguagem Java oferece a classe Math, localizada no pacote java.lang. Como este pacote é importado automaticamente em todos os programas Java, não é necessário declarar import java.lang.Math; no início do código.
Esta classe é final e não pode ser herdada. Todos os seus métodos e constantes são estáticos, o que significa que são chamados diretamente a partir da classe (por exemplo, Math.sqrt()), sem a necessidade de criar um objeto.
Funções Básicas
Estas são algumas das operações aritméticas mais comuns.
abs(valor): Retorna o valor absoluto (módulo) de um número.System.out.println(Math.abs(-13.5)); // Exibe 13.5pow(base, expoente): Retorna o valor dabaseelevada à potência doexpoente.System.out.println(Math.pow(2, 3)); // Exibe 8.0 (2 * 2 * 2)sqrt(valor): Retorna a raiz quadrada de um número. Ex:Math.sqrt(16)retorna4.0.cbrt(valor): Retorna a raiz cúbica de um número. Ex:Math.cbrt(27)retorna3.0.max(a, b): Retorna o maior entre dois números. Ex:Math.max(10, 20)retorna20.min(a, b): Retorna o menor entre dois números. Ex:Math.min(10, 20)retorna10.
Arredondamento e Truncamento
A classe Math oferece vários métodos para arredondar ou truncar valores de ponto flutuante.
round(valor): Arredonda um número para o inteiro mais próximo. Valores com parte fracionária de.5ou maior são arredondados para cima.System.out.println(Math.round(2.3)); // 2 System.out.println(Math.round(2.5)); // 3 System.out.println(Math.round(2.8)); // 3ceil(valor): Retorna o menor inteiro (comodouble) que é maior ou igual ao valor. Efetivamente, arredonda para cima.System.out.println(Math.ceil(2.34)); // 3.0floor(valor): Retorna o maior inteiro (comodouble) que é menor ou igual ao valor. Efetivamente, arredonda para baixo.System.out.println(Math.floor(2.56)); // 2.0rint(valor): Arredonda para o inteiro mais próximo (comodouble). Se a parte fracionária for exatamente.5, o arredondamento é feito para o número par mais próximo.System.out.println(Math.rint(2.5)); // 2.0 (2 é o par mais próximo) System.out.println(Math.rint(3.5)); // 4.0 (4 é o par mais próximo)
Funções Trigonométricas
A classe Math inclui funções trigonométricas. É fundamental lembrar que todos os ângulos são medidos em radianos.
sin(angulo),cos(angulo),tan(angulo): Funções trigonométricas básicas.asin(valor),acos(valor),atan(valor): Funções trigonométricas inversas.toDegrees(radianos): Converte um ângulo de radianos para graus.toRadians(graus): Converte um ângulo de graus para radianos.System.out.println(Math.toDegrees(Math.PI)); // Aprox. 180.0 System.out.println(Math.toRadians(90)); // Aprox. 1.57079
Funções Exponenciais e Logarítmicas
exp(valor): Retorna o número de Euler (e) elevado à potência do valor.log(valor): Retorna o logaritmo natural (base e) de um número.log10(valor): Retorna o logaritmo de base 10 de um número.
Funções Utilitárias
random(): Retorna um número pseudoaleatório do tipodouble, maior ou igual a0.0e menor que1.0. Para gerar um número inteiro em um intervalo, é comum usar a seguinte fórmula:// Gera um número inteiro entre 1 e 100 int numeroAleatorio = (int)(Math.random() * 100) + 1; System.out.println(numeroAleatorio);clamp(valor, min, max): Força um número a permanecer dentro de um intervalo. Sevalorfor menor quemin, retornamin. Se for maior quemax, retornamax. Caso contrário, retorna o própriovalor.System.out.println(Math.clamp(-1, 0, 5)); // Retorna 0 System.out.println(Math.clamp(6, 0, 5)); // Retorna 5 System.out.println(Math.clamp(4, 0, 5)); // Retorna 4signum(valor): Retorna o sinal de um número:1.0se for positivo,-1.0se for negativo, e0.0se for zero.
Constantes Matemáticas
A classe Math também define três constantes úteis do tipo double:
Math.PI: A razão entre a circunferência de um círculo e seu diâmetro (aprox. 3.14159).Math.E: A base dos logaritmos naturais (aprox. 2.71828).Math.TAU: O dobro de PI, representando a razão entre a circunferência e o raio.
Exemplo Prático: Cálculo da Área de um Círculo
O exemplo a seguir combina o uso de constantes e métodos para calcular a área de um círculo com base em um raio fornecido pelo usuário.
import java.util.Scanner;
public class Program {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Digite o raio do círculo: ");
int radius = in.nextInt();
// Fórmula da área: PI * raio^2
double area = Math.PI * Math.pow(radius, 2);
long areaArredondada = Math.round(area);
System.out.printf("A área do círculo com raio %d é aproximadamente %d \n", radius, areaArredondada);
in.close(); // Boa prática: fechar o Scanner para liberar recursos
}
}Saída no console:
Digite o raio do círculo: 10 A área do círculo com raio 10 é aproximadamente 314
Resumo
- Classe
Math: Fornece métodos estáticos para operações matemáticas em Java e está no pacotejava.lang, que é importado por padrão. - Métodos Estáticos: Não é necessário criar um objeto; os métodos são chamados diretamente da classe (ex:
Math.pow()). - Categorias: A classe inclui funções básicas (potência, raiz), de arredondamento (
round,ceil,floor), trigonométricas, logarítmicas e outras utilidades. - Constantes: Oferece constantes importantes como
Math.PIeMath.Epara cálculos precisos. - Números Aleatórios:
Math.random()é a base para gerar números aleatórios em diferentes intervalos.