La classe Math in Java: come funziona

La classe Math in Java ti permette di eseguire calcoli semplici. Offre numerosi metodi diversi per svolgere operazioni di base, ma anche operazioni logaritmiche e trigonometriche. La sintassi è piuttosto semplice e quindi facile da imparare.

Che cos’è la classe Math in Java?

Se desideri eseguire operazioni con semplici calcoli numerici, questo linguaggio di programmazione mette a tua disposizione lo standard Math. Non è necessario importare appositamente questa classe Java, che dispone di numerosi metodi che ti descriveremo in dettaglio nelle parti successive di questo articolo. La classe Math non richiede l’istanziazione 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 approssimato), come base del logaritmo naturale della funzione esponenziale naturale, e il pi greco (circa π = 3,1415926535 approssimato). La classe Math è inclusa nel pacchetto java.lang. Il risultato dei calcoli è di tipo “double” nella maggior parte dei casi.

Il tuo web hosting come mai prima d'ora
  • Certificato SSL e protezione DDoS
  • Velocità, flessibilità e scalabilità
  • Dominio e consulente personale
  • 1 anno gratis del gestionale di fatturazione elettronica FlexTax

Calcolo di valori assoluti

Il modo migliore per spiegare il funzionamento 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 utilizzare 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 consentiti per questo metodo sono double, float, int e long. Math.abs lavora quindi con numeri positivi. Negli esempi seguenti utilizziamo 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 utilizzare un valore di partenza negativo. Il risultato rimane comunque positivo. Nel nostro esempio precedente, funzionerebbe 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 precedente:

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

Rilevamento 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 precedenti erano effettivamente semplici, ma esistono anche casi in cui è possibile utilizzare la classe Math in Java per calcoli più complessi. Ad esempio, il metodo per il calcolo della potenza è pow(). Per questo metodo dobbiamo innanzitutto 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

Estrazione della radice quadrata

È possibile utilizzare questa classe anche per estrarre una radice utilizzando il metodo sqrt(). Nell’esempio seguente calcoliamo 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

Generazione di numeri casuali

Il metodo random() ti permette di ottenere un numero casuale compreso fra 0.0 e 1.0 oppure in un intervallo a tua scelta. Ti mostriamo entrambe le possibilità:

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 alternativa puoi anche restringere 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 principali

Con la classe Math in Java è possibile utilizzare numerosi metodi. I principali sono:

Metodo Funzione
abs() Restituisce il valore assoluto di un argomento.
max() Restituisce il maggiore tra due valori.
min() Restituisce il minore tra due valori.
pow() Restituisce il valore della potenza.
sqrt() Calcola la radice quadrata.
random() Restituisce un valore double casuale.
cbrt() Calcola la radice cubica.
log() Restituisce 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.
Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top