Java ha tenido varias aplicaciones de uso avanzado, incluido el trabajo con cálculos complejos en física, arquitectura / diseño de estructuras, trabajo con mapas y latitudes / longitudes correspondientes, etc.
En este tutorial, aprenderá:
- Math.abs
- Math.round
- Math.ceil & Math.floor
- Math.min
Todas estas aplicaciones requieren el uso de cálculos / ecuaciones complejos que son tediosos de realizar manualmente. Programáticamente, tales cálculos involucrarían el uso de logaritmos, trigonometría, ecuaciones exponenciales, etc.
Ahora, no puede tener todas las tablas de registro o trigonometría codificadas en algún lugar de su aplicación o datos. Los datos serían enormes y complejos de mantener.
Java proporciona una clase muy útil para este propósito. Es la clase Java Math (java.lang.Math).
Esta clase también proporciona métodos para realizar operaciones como ecuaciones exponenciales, logaritmos, raíces y trigonométricas.
Echemos un vistazo a los métodos proporcionados por la clase Java Math.
Los dos elementos más fundamentales en matemáticas son la 'e' (base del logaritmo natural) y 'pi' (relación entre la circunferencia de un círculo y su diámetro). Estas dos constantes a menudo se requieren en los cálculos / operaciones anteriores.
Por lo tanto, la clase Math java proporciona estas dos constantes como campos dobles.
Math.E : tiene un valor de 2,718281828459045
Math.PI: tiene un valor de 3,141592653589793
A) Echemos un vistazo a la siguiente tabla que nos muestra los métodos básicos y su descripción.
Método | Descripción | Argumentos |
abdominales | Devuelve el valor absoluto del argumento. | Doble, flotante, int, largo |
redondo | Devuelve el int cerrado o largo (según el argumento) | doble o flotante |
hacer techo | Devuelve el número entero más pequeño que es mayor o igual que el argumento. | Doble |
suelo | Devuelve el entero más grande que es menor o igual que el argumento. | Doble |
min | Devuelve el más pequeño de los dos argumentos. | Doble, flotante, int, largo |
max | Devuelve el mayor de los dos argumentos. | Doble, flotante, int, largo |
A continuación se muestra la implementación del código de los métodos anteriores:
Nota: No es necesario importar explícitamente java.lang.Math ya que se importa implícitamente. Todos sus métodos son estáticos.
Variable entera
int i1 = 27;int i2 = -45;
Variables dobles (decimales)
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));}}Producción:
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));}}Producción:
Round off for d1: 85Round off for d2: 0
Math.ceil & 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));}}Producción:
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));}}Producción:
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) Echemos un vistazo a la siguiente tabla que nos muestra los métodos exponencial y logarítmico y su descripción.
Método | Descripción | Argumentos |
Exp | Devuelve la base de logaritmo natural (e) a la potencia del argumento | Doble |
Tronco | Devuelve el logaritmo natural del argumento. | doble |
Pow | Toma 2 argumentos como entrada y devuelve el valor del primer argumento elevado a la potencia del segundo argumento | Doble |
suelo | Devuelve el entero más grande que es menor o igual que el argumento. | Doble |
Sqrt | Devuelve la raíz cuadrada del argumento. | Doble |
A continuación se muestra la implementación del código de los métodos anteriores: (Se utilizan las mismas variables que las anteriores)
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));}}Producción:
exp(0.45) = 1.568312185490169log(0.45) = -0.7985076962177716pow(5, 3) = 125.0sqrt(16) = 4.0
C) Echemos un vistazo a la siguiente tabla que nos muestra los métodos trigonométricos y su descripción.
Método | Descripción | Argumentos |
Pecado | Devuelve el seno del argumento especificado. | Doble |
Porque | Devuelve el coseno del argumento especificado. | doble |
Broncearse | Devuelve la tangente del argumento especificado. | Doble |
Atan2 | Convierte coordenadas rectangulares (x, y) a polares (r, theta) y devuelve theta | Doble |
toDegrees | Convierte los argumentos a grados | Doble |
Sqrt | Devuelve la raíz cuadrada del argumento. | Doble |
toRadians | Convierte los argumentos a radianes | Doble |
Los argumentos predeterminados están en radianes
A continuación se muestra la implementación del 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));}}Producción:
sin(30) = 0.49999999999999994cos(30) = 0.8660254037844387tan(30) = 0.5773502691896257Theta = 1.1071487177940904
Ahora, con lo anterior, también puede diseñar su propia calculadora científica en Java.