Java teve vários aplicativos de uso avançado, incluindo trabalho com cálculos complexos em física, arquitetura / projeto de estruturas, trabalho com mapas e latitudes / longitudes correspondentes, etc.
Neste tutorial, você aprenderá:
- Math.abs
- Math.round
- Math.ceil e Math.floor
- Math.min
Todas essas aplicações requerem o uso de cálculos / equações complexas que são tediosas de serem executadas manualmente. Programaticamente, esses cálculos envolveriam o uso de logaritmos, trigonometria, equações exponenciais, etc.
Agora, você não pode ter todas as tabelas de log ou trigonometria codificadas em algum lugar em seu aplicativo ou dados. Os dados seriam enormes e complexos de manter.
Java fornece uma classe muito útil para esse propósito. É a classe Java Math (java.lang.Math).
Esta classe fornece métodos para realizar as operações como exponencial, logaritmo, raízes e equações trigonométricas também.
Vamos dar uma olhada nos métodos fornecidos pela classe Java Math.
Os dois elementos mais fundamentais em matemática são o 'e' (base do logaritmo natural) e 'pi' (razão entre a circunferência de um círculo e seu diâmetro). Essas duas constantes são freqüentemente exigidas nos cálculos / operações acima.
Conseqüentemente, a classe Math java fornece essas duas constantes como campos duplos.
Math.E - tendo um valor de 2.718281828459045
Math.PI - tendo um valor de 3,141592653589793
A) Vamos dar uma olhada na tabela abaixo que nos mostra os métodos básicos e sua descrição
Método | Descrição | Argumentos |
abdômen | Retorna o valor absoluto do argumento | Double, float, int, long |
Redondo | Retorna o inteiro fechado ou longo (de acordo com o argumento) | dobrar ou flutuar |
teto | Retorna o menor inteiro maior ou igual ao argumento | Dobro |
piso | Retorna o maior inteiro menor ou igual ao argumento | Dobro |
min | Retorna o menor dos dois argumentos | Double, float, int, long |
max | Retorna o maior dos dois argumentos | Double, float, int, long |
Abaixo está a implementação de código dos métodos acima:
Nota: Não há necessidade de importar explicitamente java.lang.Math como foi importado implicitamente. Todos os seus métodos são estáticos.
Variável Inteira
int i1 = 27;int i2 = -45;
Variáveis duplas (decimais)
double d1 = 84.6;double d2 = 0.45;
Math.abs
public class Guru99 {public static void main(String args[]) {int i1 = 27;int i2 = -45;double d1 = 84.6;double d2 = 0.45;System.out.println("Absolute value of i1: " + Math.abs(i1));System.out.println("Absolute value of i2: " + Math.abs(i2));System.out.println("Absolute value of d1: " + Math.abs(d1));System.out.println("Absolute value of d2: " + Math.abs(d2));}}Resultado:
Absolute value of i1: 27Absolute value of i2: 45Absolute value of d1: 84.6Absolute value of d2: 0.45
Math.round
public class Guru99 {public static void main(String args[]) {double d1 = 84.6;double d2 = 0.45;System.out.println("Round off for d1: " + Math.round(d1));System.out.println("Round off for d2: " + Math.round(d2));}}Resultado:
Round off for d1: 85Round off for d2: 0
Math.ceil e Math.floor
public class Guru99 {public static void main(String args[]) {double d1 = 84.6;double d2 = 0.45;System.out.println("Ceiling of '" + d1 + "' = " + Math.ceil(d1));System.out.println("Floor of '" + d1 + "' = " + Math.floor(d1));System.out.println("Ceiling of '" + d2 + "' = " + Math.ceil(d2));System.out.println("Floor of '" + d2 + "' = " + Math.floor(d2));}}Resultado:
Ceiling of '84.6' = 85.0Floor of '84.6' = 84.0Ceiling of '0.45' = 1.0Floor of '0.45' = 0.0
Math.min
public class Guru99 {public static void main(String args[]) {int i1 = 27;int i2 = -45;double d1 = 84.6;double d2 = 0.45;System.out.println("Minimum out of '" + i1 + "' and '" + i2 + "' = " + Math.min(i1, i2));System.out.println("Maximum out of '" + i1 + "' and '" + i2 + "' = " + Math.max(i1, i2));System.out.println("Minimum out of '" + d1 + "' and '" + d2 + "' = " + Math.min(d1, d2));System.out.println("Maximum out of '" + d1 + "' and '" + d2 + "' = " + Math.max(d1, d2));}}Resultado:
Minimum out of '27' and '-45' = -45Maximum out of '27' and '-45' = 27Minimum out of '84.6' and '0.45' = 0.45Maximum out of '84.6' and '0.45' = 84.6
B) Vamos dar uma olhada na tabela abaixo que nos mostra os métodos Exponencial e Logarítmico e sua descrição-
Método | Descrição | Argumentos |
exp | Retorna a base do log natural (e) para a potência do argumento | Dobro |
Registro | Retorna o log natural do argumento | em dobro |
Pancada | Recebe 2 argumentos como entrada e retorna o valor do primeiro argumento elevado à potência do segundo argumento | Dobro |
piso | Retorna o maior inteiro menor ou igual ao argumento | Dobro |
Sqrt | Retorna a raiz quadrada do argumento | Dobro |
Abaixo está a implementação do código dos métodos acima: (As mesmas variáveis são usadas como acima)
public class Guru99 {public static void main(String args[]) {double d1 = 84.6;double d2 = 0.45;System.out.println("exp(" + d2 + ") = " + Math.exp(d2));System.out.println("log(" + d2 + ") = " + Math.log(d2));System.out.println("pow(5, 3) = " + Math.pow(5.0, 3.0));System.out.println("sqrt(16) = " + Math.sqrt(16));}}Resultado:
exp(0.45) = 1.568312185490169log(0.45) = -0.7985076962177716pow(5, 3) = 125.0sqrt(16) = 4.0
C) Vamos dar uma olhada na tabela abaixo que nos mostra os métodos trigonométricos e sua descrição-
Método | Descrição | Argumentos |
Pecado | Retorna o seno do argumento especificado | Dobro |
Cos | Retorna o cosseno do argumento especificado | em dobro |
bronzeado | Retorna a tangente do argumento especificado | Dobro |
Atan2 | Converte coordenadas retangulares (x, y) em polares (r, theta) e retorna theta | Dobro |
toDegrees | Converte os argumentos em graus | Dobro |
Sqrt | Retorna a raiz quadrada do argumento | Dobro |
toRadians | Converte os argumentos em radianos | Dobro |
Os argumentos padrão estão em radianos
Abaixo está a implementação do código:
public class Guru99 {public static void main(String args[]) {double angle_30 = 30.0;double radian_30 = Math.toRadians(angle_30);System.out.println("sin(30) = " + Math.sin(radian_30));System.out.println("cos(30) = " + Math.cos(radian_30));System.out.println("tan(30) = " + Math.tan(radian_30));System.out.println("Theta = " + Math.atan2(4, 2));}}Resultado:
sin(30) = 0.49999999999999994cos(30) = 0.8660254037844387tan(30) = 0.5773502691896257Theta = 1.1071487177940904
Agora, com o exposto acima, você também pode criar sua própria calculadora científica em java.