La classe Math in Java ti permette di eseguire calcoli semplici. Offre numerosi metodi diversi per svolgere ope­ra­zio­ni di base, ma anche ope­ra­zio­ni lo­ga­rit­mi­che e tri­go­no­me­tri­che. La sintassi è piuttosto semplice e quindi facile da imparare.

Che cos’è la classe Math in Java?

Se desideri eseguire ope­ra­zio­ni con semplici calcoli numerici, questo lin­guag­gio di pro­gram­ma­zio­ne mette a tua di­spo­si­zio­ne lo standard Math. Non è ne­ces­sa­rio importare ap­po­si­ta­men­te questa classe Java, che dispone di numerosi metodi che ti de­scri­ve­re­mo in dettaglio nelle parti suc­ces­si­ve di questo articolo. La classe Math non richiede l’istan­zia­zio­ne e utilizza tutti i propri metodi soltanto in modo statico. Anche le due costanti della classe sono statiche: il numero di Eulero (e = 2,7182818284590 ap­pros­si­ma­to), come base del logaritmo naturale della funzione espo­nen­zia­le naturale, e il pi greco (circa π = 3,1415926535 ap­pros­si­ma­to). La classe Math è inclusa nel pacchetto java.lang. Il risultato dei calcoli è di tipo “double” nella maggior parte dei casi.

Web Hosting
Diventa il n°1 della rete con il provider di hosting n°1 in Europa
  • Di­spo­ni­bi­li­tà garantita al 99,99%
  • Dominio, SSL ed e-mail inclusi
  • As­si­sten­za 24/7 in lingua italiana

Calcolo di valori assoluti

Il modo migliore per spiegare il fun­zio­na­men­to e la sintassi della classe Math in Java è con alcuni esempi nel contesto dei singoli metodi. Per calcolare il valore assoluto di un parametro puoi uti­liz­za­re abs(). Per valore assoluto si intende la distanza di un numero da 0 oppure un numero senza segno. Il risultato è quindi sempre positivo. I tipi con­sen­ti­ti per questo metodo sono double, float, int e long. Math.abs lavora quindi con numeri positivi. Negli esempi seguenti uti­liz­zia­mo il comando Java System.out.println per ottenere il risultato.

public class Main {
public static void main(String args[]) {
int number = +7;
System.out.println ("Il numero originale è: " + number);
System.out.println ("Il numero assoluto è: " + "Math.abs (" + number + ") = " + Math.abs(number));
}
}
java

Il relativo output si presenta così:

Il numero originale è 7 Il numero assoluto è Math.abs ( 7 ) = 7
java

È anche possibile uti­liz­za­re un valore di partenza negativo. Il risultato rimane comunque positivo. Nel nostro esempio pre­ce­den­te, fun­zio­ne­reb­be così:

public class Main {
public static void main(String args[]) {
int number = -7;
System.out.println ("Il numero originale è: " + number);
System.out.println ("Il numero assoluto è: " + "Math.abs (" + number + ") = " + Math.abs(number));
}
}
java

Il risultato emesso coincide in generale con quello dell’esempio pre­ce­den­te:

Il numero originale è -7 Il numero assoluto è Math.abs ( -7 ) = 7
java

Questo metodo ignora quindi il segno del numero intero negativo (-7) e dà comunque come risultato il valore “7”.

Emissione del valore massimo

Con il metodo max() è possibile rilevare il maggiore di due valori inseriti. Ad esempio, così:

public class Main {
public static void main(String args[]) {
double numero = Math.max(3, 9);
System.out.println ("Il numero maggiore è: " + numero);
}
}
java

Il risultato è il seguente:

Il numero maggiore è 9
java

Ri­le­va­men­to del valore minimo

La classe Math in Java funziona in modo simile anche per rilevare il valore minore. A tal fine, si utilizza il metodo min(), che si presenta così:

public class Main {
public static void main(String args[]) {
double numero = Math.min(3, 9);
System.out.println ("Il numero minore è: " + numero);
}
}
java

Otteniamo quindi questo risultato:

Il numero minore è 3
java

Calcolo di una potenza

Gli esempi pre­ce­den­ti erano ef­fet­ti­va­men­te semplici, ma esistono anche casi in cui è possibile uti­liz­za­re la classe Math in Java per calcoli più complessi. Ad esempio, il metodo per il calcolo della potenza è pow(). Per questo metodo dobbiamo in­nan­zi­tut­to definire una base e un esponente, quindi eseguire il calcolo.

public class Main {
public static void main(String args[]) {
double base = 4;
double esponente = 2;
double potenza = Math.pow(base, esponente);
System.out.println ("Il risultato è: " + potenza);
}
}
java

Il risultato che otteniamo è il seguente:

Il risultato è 16
java

Estra­zio­ne della radice quadrata

È possibile uti­liz­za­re questa classe anche per estrarre una radice uti­liz­zan­do il metodo sqrt(). Nell’esempio seguente cal­co­lia­mo la radice quadrata di 64:

public class Main {
public static void main(String args[]) {
double numero = 64;
double radice = Math.sqrt(numero);
System.out.println ("Il risultato è: " + radice);
}
}
java

In questo modo otteniamo questo risultato:

Il risultato è 8.0
java

Ge­ne­ra­zio­ne di numeri casuali

Il metodo random() ti permette di ottenere un numero casuale compreso fra 0.0 e 1.0 oppure in un in­ter­val­lo a tua scelta. Ti mostriamo entrambe le pos­si­bi­li­tà:

public class Main {
public static void main(String args[]) {
double numerocasuale
System.out.println(Math.random());
}
}
java

Un possibile risultato in questo esempio sarebbe:

0.7488711506123137
java

In al­ter­na­ti­va puoi anche re­strin­ge­re i risultati possibili e ottenere solo numeri interi fra 0 e 100. Per farlo, utilizza il seguente codice:

public class Main {
public static void main(String args[]) {
int numerocasuale = (int) (Math.random() * 101);
System.out.println(numero casuale);
}
}
java

In questo modo otterrai risultati casuali di questo tipo:

27
java

Elenco dei metodi prin­ci­pa­li

Con la classe Math in Java è possibile uti­liz­za­re numerosi metodi. I prin­ci­pa­li sono:

Metodo Funzione
abs() Re­sti­tui­sce il valore assoluto di un argomento.
max() Re­sti­tui­sce il maggiore tra due valori.
min() Re­sti­tui­sce il minore tra due valori.
pow() Re­sti­tui­sce il valore della potenza.
sqrt() Calcola la radice quadrata.
random() Re­sti­tui­sce un valore double casuale.
cbrt() Calcola la radice cubica.
log() Re­sti­tui­sce il logaritmo naturale di un valore double.
sin() Calcola il seno di un valore double.
cos() Calcola il coseno di un valore double.
tan() Calcola il valore della tangente di un valore double.
round() Arrotonda un valore double a un numero intero per eccesso o per difetto.
negateExact() Mostra il valore opposto di un argomento.
floor() Arrotonda il valore double massimo che è minore o uguale all’argomento indicato.
Vai al menu prin­ci­pa­le