0Pricing
Java Academy · Lezione

Elementi essenziali della classe Math

Utilizzi Math.abs, Math.pow, Math.sqrt, Math.random e altri metodi Math di uso frequente.

Elementi essenziali della classe Math è una lezione Java Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Java Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Java Academy include 4 lezioni in totale.

La classe Math

La classe java.lang.Math fornisce metodi statici di utilità per le operazioni matematiche più comuni. È sempre disponibile: non è necessario alcun import.

Valore assoluto e segno

Math.abs() restituisce il valore assoluto, cioè non negativo. Math.signum() restituisce -1.0, 0.0 o 1.0 in base al segno.

System.out.println(Math.abs(-42));      // 42
System.out.println(Math.abs(3.14));     // 3.14
System.out.println(Math.signum(-5.0));  // -1.0
System.out.println(Math.signum(0.0));   //  0.0
System.out.println(Math.signum(7.0));   //  1.0

Potenza, radice quadrata e radice cubica

Utilizzi Math.pow(base, exp) per le potenze, Math.sqrt() per le radici quadrate e Math.cbrt() per le radici cubiche.

System.out.println(Math.pow(2, 10));  // 1024.0
System.out.println(Math.sqrt(144));   // 12.0
System.out.println(Math.cbrt(27));    // 3.0

// Hypotenuse of a right triangle (a=3, b=4)
double hyp = Math.sqrt(Math.pow(3, 2) + Math.pow(4, 2));
System.out.println(hyp); // 5.0

Minimo, massimo e clamp

Math.min() e Math.max() restituiscono rispettivamente il valore minore e quello maggiore tra due valori. Combinandoli è possibile implementare un clamp che mantiene un valore all'interno di un intervallo.

int a = 10, b = 20;
System.out.println(Math.min(a, b)); // 10
System.out.println(Math.max(a, b)); // 20

// Clamp value between 0 and 100
int clamp(int value, int min, int max) {
    return Math.max(min, Math.min(value, max));
}
System.out.println(clamp(150, 0, 100)); // 100
System.out.println(clamp(-5,  0, 100)); // 0
System.out.println(clamp(75,  0, 100)); // 75

Floor, ceiling e round

Math.floor() arrotonda per difetto, Math.ceil() arrotonda per eccesso e Math.round() arrotonda all'intero più vicino, a metà per eccesso.

double price = 9.3;
System.out.println(Math.floor(price));  // 9.0
System.out.println(Math.ceil(price));   // 10.0
System.out.println(Math.round(price));  // 9

double shipping = 3.5;
System.out.println(Math.round(shipping)); // 4 (half-up)

// Round to 2 decimal places
double tax = 7.5678;
double rounded = Math.round(tax * 100.0) / 100.0;
System.out.println(rounded); // 7.57

Logaritmi ed esponenziali

Math.log() calcola il logaritmo naturale, in base e; Math.log10() calcola il logaritmo in base 10; Math.exp() calcola e^x.

System.out.println(Math.log(Math.E));   // 1.0
System.out.println(Math.log10(1000));   // 3.0
System.out.println(Math.exp(1));        // 2.718281828...

// Change of base: log2(8)
double log2 = Math.log(8) / Math.log(2);
System.out.println(log2); // 3.0

// Compound interest: P * e^(r*t)
double principal = 1000, rate = 0.05, years = 10;
double amount = principal * Math.exp(rate * years);
System.out.printf("Amount: %.2f%n", amount); // 1648.72

Metodi trigonometrici

Math fornisce funzioni trigonometriche che accettano angoli in radianti. Utilizzi Math.toRadians() per convertire i gradi in radianti.

double angle = Math.toRadians(45);
System.out.printf("sin(45): %.4f%n", Math.sin(angle)); // 0.7071
System.out.printf("cos(45): %.4f%n", Math.cos(angle)); // 0.7071
System.out.printf("tan(45): %.4f%n", Math.tan(angle)); // 1.0000

// Distance between two GPS coordinates (simplified)
double lat1 = Math.toRadians(40.7128);
double lat2 = Math.toRadians(34.0522);
double deltaLat = lat2 - lat1;
System.out.printf("Delta lat (rad): %.4f%n", deltaLat);

Numeri casuali

Math.random() restituisce un double nell'intervallo [0.0, 1.0). Moltiplichi il risultato ed esegua un cast per ottenere interi in un intervallo. Per una casualità migliore, preferisca java.util.Random.

// Random double [0.0, 1.0)
double rand = Math.random();

// Random int [min, max] inclusive
int min = 1, max = 6;
int dice = (int) (Math.random() * (max - min + 1)) + min;
System.out.println("Dice roll: " + dice); // 1–6

// Prefer java.util.Random for more features
import java.util.Random;
Random rng = new Random();
int secureRoll = rng.nextInt(6) + 1; // cleaner API
System.out.println("Secure roll: " + secureRoll);

Costanti: PI ed E

Math.PI e Math.E sono costanti double che rappresentano π e il numero di Eulero e. Le utilizzi per i calcoli geometrici e finanziari.

System.out.println(Math.PI); // 3.141592653589793
System.out.println(Math.E);  // 2.718281828459045

// Circle area and circumference
double radius = 7.0;
double area = Math.PI * Math.pow(radius, 2);
double circumference = 2 * Math.PI * radius;

System.out.printf("Area: %.2f%n", area);           // 153.94
System.out.printf("Circumference: %.2f%n", circumference); // 43.98

Math.floorDiv e Math.floorMod

Math.floorDiv() e Math.floorMod() gestiscono in modo coerente i numeri negativi, a differenza degli operatori / e %, che possono produrre risultati sorprendenti con i valori negativi.

// Regular % can be negative with negative dividend
System.out.println(-7 % 3);           // -1 (may surprise you)
System.out.println(Math.floorMod(-7, 3)); // 2  (always non-negative)

// Floor division rounds toward negative infinity
System.out.println(-7 / 3);              // -2 (truncates toward zero)
System.out.println(Math.floorDiv(-7, 3)); // -3 (floors down)

// Use floorMod for cyclic calculations like days of week
int day = Math.floorMod(-1, 7); // Sunday (6), not -1
System.out.println(day); // 6

Pratica: distanza e fisica

Applicazione dei metodi Math a un problema di fisica: calcolo della gittata di un proiettile tramite trigonometria e radici quadrate.

// Projectile range: R = v^2 * sin(2*angle) / g
double velocity = 50.0;   // m/s
double angleDeg = 45.0;   // degrees
double g = 9.81;          // m/s^2

double angleRad = Math.toRadians(angleDeg);
double range = Math.pow(velocity, 2) * Math.sin(2 * angleRad) / g;

System.out.printf("Projectile range: %.1f m%n", range); // 254.8 m

Verifica rapida

Qual è l'output di Math.floorMod(-7, 3)?

Riepilogo: la classe Math

Punti chiave:

  • Math.abs, Math.min, Math.max per i confronti di base
  • Math.pow, Math.sqrt, Math.cbrt per potenze e radici
  • Math.floor, Math.ceil, Math.round per gli arrotondamenti
  • Math.log, Math.log10, Math.exp per logaritmi ed esponenziali
  • Math.sin, Math.cos, Math.tan utilizzano radianti: converta con Math.toRadians
  • Math.floorMod gestisce in modo chiaro i numeri negativi nell'aritmetica ciclica
  • Math.PI e Math.E sono costanti integrate

Domande Frequenti

La lezione «Elementi essenziali della classe Math» è gratuita?

Sì — il testo completo di «Elementi essenziali della classe Math» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Java Academy, passa a CoddyKit PRO. Il corso Java Academy include 4 lezioni in totale.

Cosa imparerò in «Elementi essenziali della classe Math»?

Utilizzi Math.abs, Math.pow, Math.sqrt, Math.random e altri metodi Math di uso frequente. Eserciti Java Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Java Academy?

Non è richiesta alcuna esperienza precedente. Java Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Elementi essenziali della classe Math»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Java Academy?

Sì. Ogni lezione Java Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Elementi essenziali della classe Math
  2. Aritmetica degli interi e overflow
  3. BigDecimal per i calcoli finanziari
  4. NumberFormat e printf
← Torna a Java Academy