# 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](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/linguaggi-programmazione-web/) 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.

## 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](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/comandi-java/) `System.out.println` per ottenere il risultato.

```java
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));
}
}
```

Il relativo output si presenta così:

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

È anche possibile utilizzare un valore di partenza negativo. Il risultato rimane comunque positivo. Nel nostro esempio precedente, funzionerebbe così:

```java
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));
}
}
```

Il risultato emesso coincide in generale con quello dell’esempio precedente:

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

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ì:

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

Il risultato è il seguente:

```java
Il numero maggiore è 9
```

## 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ì:

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

Otteniamo quindi questo risultato:

```java
Il numero minore è 3
```

## 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.

```java
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);
}
}
```

Il risultato che otteniamo è il seguente:

```java
Il risultato è 16
```

## 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:

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

In questo modo otteniamo questo risultato:

```java
Il risultato è 8.0
```

## 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à:

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

Un possibile risultato in questo esempio sarebbe:

```java
0.7488711506123137
```

In alternativa puoi anche restringere i risultati possibili e ottenere solo numeri interi fra 0 e 100. Per farlo, utilizza il seguente codice:

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

In questo modo otterrai risultati casuali di questo tipo:

```java
27
```

## Elenco dei metodi principali

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

<table>
  <thead>
    <tr>
      <th><strong>Metodo</strong></th>
      <th><strong>Funzione</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`abs()`</td>
      <td>Restituisce il valore assoluto di un argomento.</td>
    </tr>
    <tr>
      <td>`max()`</td>
      <td>Restituisce il maggiore tra due valori.</td>
    </tr>
    <tr>
      <td>`min()`</td>
      <td>Restituisce il minore tra due valori.</td>
    </tr>
    <tr>
      <td>`pow()`</td>
      <td>Restituisce il valore della potenza.</td>
    </tr>
    <tr>
      <td>`sqrt()`</td>
      <td>Calcola la radice quadrata.</td>
    </tr>
    <tr>
      <td>`random()`</td>
      <td>Restituisce un valore double casuale.</td>
    </tr>
    <tr>
      <td>`cbrt()`</td>
      <td>Calcola la radice cubica.</td>
    </tr>
    <tr>
      <td>`log()`</td>
      <td>Restituisce il logaritmo naturale di un valore double.</td>
    </tr>
    <tr>
      <td>`sin()`</td>
      <td>Calcola il seno di un valore double.</td>
    </tr>
    <tr>
      <td>`cos()`</td>
      <td>Calcola il coseno di un valore double.</td>
    </tr>
    <tr>
      <td>`tan()`</td>
      <td>Calcola il valore della tangente di un valore double.</td>
    </tr>
    <tr>
      <td>`round()`</td>
      <td>Arrotonda un valore double a un numero intero per eccesso o per difetto.</td>
    </tr>
    <tr>
      <td>`negateExact()`</td>
      <td>Mostra il valore opposto di un argomento.</td>
    </tr>
    <tr>
      <td>`floor()`</td>
      <td>Arrotonda il valore double massimo che è minore o uguale all’argomento indicato.</td>
    </tr>
  </tbody>
</table>


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/math-in-java/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/math-in-java/) for AI/LLM consumption.