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.5
pow(base, expoente)
: Retorna o valor dabase
elevada à 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.5
ou 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)); // 3
ceil(valor)
: Retorna o menor inteiro (comodouble
) que é maior ou igual ao valor. Efetivamente, arredonda para cima.System.out.println(Math.ceil(2.34)); // 3.0
floor(valor)
: Retorna o maior inteiro (comodouble
) que é menor ou igual ao valor. Efetivamente, arredonda para baixo.System.out.println(Math.floor(2.56)); // 2.0
rint(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.0
e 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. Sevalor
for 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 4
signum(valor)
: Retorna o sinal de um número:1.0
se for positivo,-1.0
se for negativo, e0.0
se 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.PI
eMath.E
para cálculos precisos. - Números Aleatórios:
Math.random()
é a base para gerar números aleatórios em diferentes intervalos.