Java ha avuto diverse applicazioni di utilizzo avanzato tra cui lavorare con calcoli complessi in fisica, architettura / progettazione di strutture, lavorare con mappe e latitudini / longitudini corrispondenti, ecc.
In questo tutorial imparerai:
- Math.abs
- Math.round
- Math.ceil e Math.floor
- Math.min
Tutte queste applicazioni richiedono l'uso di calcoli / equazioni complessi che sono noiosi da eseguire manualmente. A livello di codice, tali calcoli implicherebbero l'uso di logaritmi, trigonometria, equazioni esponenziali, ecc.
Ora, non è possibile avere tutte le tabelle di registro o trigonometriche codificate da qualche parte nell'applicazione o nei dati. I dati sarebbero enormi e complessi da mantenere.
Java fornisce una classe molto utile per questo scopo. È la classe Java Math (java.lang.Math).
Questa classe fornisce metodi per eseguire operazioni come esponenziali, logaritmi, radici ed equazioni trigonometriche.
Diamo uno sguardo ai metodi forniti dalla classe Java Math.
I due elementi fondamentali in matematica sono la "e" (base del logaritmo naturale) e "pi" (rapporto tra la circonferenza di un cerchio e il suo diametro). Queste due costanti sono spesso richieste nei calcoli / operazioni di cui sopra.
Quindi la java della classe Math fornisce queste due costanti come campi doppi.
Math.E - avente un valore come 2,718281828459045
Math.PI: con valore 3.141592653589793
A) Diamo uno sguardo alla tabella sottostante che ci mostra i metodi Basic e la sua descrizione
Metodo | Descrizione | argomenti |
addominali | Restituisce il valore assoluto dell'argomento | Double, float, int, long |
il giro | Restituisce int o long chiuso (secondo l'argomento) | doppio o galleggiante |
ceil | Restituisce il numero intero più piccolo maggiore o uguale all'argomento | Doppio |
pavimento | Restituisce il numero intero più grande minore o uguale all'argomento | Doppio |
min | Restituisce il più piccolo dei due argomenti | Double, float, int, long |
max | Restituisce il più grande dei due argomenti | Double, float, int, long |
Di seguito è riportata l'implementazione del codice dei metodi precedenti:
Nota: non è necessario importare esplicitamente java.lang.Math poiché viene importato implicitamente. Tutti i suoi metodi sono statici.
Variabile intera
int i1 = 27;int i2 = -45;
Variabili doppie (decimali)
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));}}Produzione:
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));}}Produzione:
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));}}Produzione:
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));}}Produzione:
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) Diamo uno sguardo alla tabella sottostante che ci mostra i metodi Esponenziale e Logaritmico e la sua descrizione-
Metodo | Descrizione | argomenti |
exp | Restituisce la base del logaritmo naturale (e) alla potenza dell'argomento | Doppio |
Log | Restituisce il logaritmo naturale dell'argomento | Doppio |
Pow | Accetta 2 argomenti come input e restituisce il valore del primo argomento elevato alla potenza del secondo argomento | Doppio |
pavimento | Restituisce il numero intero più grande minore o uguale all'argomento | Doppio |
Mq | Restituisce la radice quadrata dell'argomento | Doppio |
Di seguito è riportata l'implementazione del codice dei metodi precedenti: (Vengono utilizzate le stesse variabili come sopra)
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));}}Produzione:
exp(0.45) = 1.568312185490169log(0.45) = -0.7985076962177716pow(5, 3) = 125.0sqrt(16) = 4.0
C) Diamo uno sguardo alla tabella sottostante che ci mostra i metodi trigonometrici e la sua descrizione-
Metodo | Descrizione | argomenti |
Peccato | Restituisce il seno dell'argomento specificato | Doppio |
Cos | Restituisce il coseno dell'argomento specificato | Doppio |
Tan | Restituisce la tangente dell'argomento specificato | Doppio |
Atan2 | Converte le coordinate rettangolari (x, y) in polari (r, theta) e restituisce theta | Doppio |
toDegrees | Converte gli argomenti in gradi | Doppio |
Mq | Restituisce la radice quadrata dell'argomento | Doppio |
toRadians | Converte gli argomenti in radianti | Doppio |
Gli argomenti predefiniti sono in radianti
Di seguito è riportata l'implementazione del codice:
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));}}Produzione:
sin(30) = 0.49999999999999994cos(30) = 0.8660254037844387tan(30) = 0.5773502691896257Theta = 1.1071487177940904
Ora, con quanto sopra, puoi anche progettare la tua calcolatrice scientifica in java.