Ce face Math.sqrt
Math.sqrt(x) returnează rădăcina pătrată a lui x. Pentru un număr negativ rezultatul este NaN, nu o excepție. Rezultatul este rotunjit corect, deci pentru pătrate perfecte (sqrt(144)) obții exact 12.0.
Math.cbrt(x) (de la „cube root”) returnează rădăcina cubică. Spre deosebire de Math.pow(x, 1.0/3), funcționează și pentru numere negative: cbrt(-27) este -3.0.
Parametri
| Parametru | Descriere |
|---|---|
a |
Numărul. |
Ce returnează
Un double; sqrt dă NaN pentru numere negative.
Exemple
Exemplul 1: Rădăcini pătrate și cubice
public class Main {
public static void main(String[] args) {
System.out.println(Math.sqrt(144));
System.out.println(Math.sqrt(2));
System.out.println(Math.sqrt(-4));
System.out.println(Math.cbrt(27));
System.out.println(Math.cbrt(-27));
System.out.println(Math.pow(-27, 1.0 / 3));
}
}
Rezultat
12.0
1.4142135623730951
NaN
3.0
-3.0
NaN
Exemplul 2: Latura unui teren pătrat
public class Main {
public static void main(String[] args) {
double arie = 500;
double latura = Math.sqrt(arie);
System.out.printf("Un teren pătrat de %.0f m² are latura de %.2f m%n", arie, latura);
double volum = 1000;
System.out.println("Cubul de " + volum + " litri are latura " + Math.cbrt(volum) + " dm");
}
}
Rezultat
Un teren pătrat de 500 m² are latura de 22.36 m
Cubul de 1000.0 litri are latura 10.0 dm
Exemplul 3: Este pătrat perfect?
public class Main {
static boolean patratPerfect(int n) {
int r = (int) Math.sqrt(n);
return r * r == n;
}
public static void main(String[] args) {
for (int n : new int[] {49, 50, 1024, 2026}) {
System.out.println(n + ": " + patratPerfect(n));
}
}
}
Rezultat
49: true
50: false
1024: true
2026: false
Greșeli frecvente
- Te aștepți la excepție pentru
sqrt(-1): primeștiNaN, care se propagă în calcule. Verifică argumentul sau rezultatul cuDouble.isNaN. - Pentru distanța dintre două puncte scrii
Math.sqrt(dx*dx + dy*dy)cu valori uriașe și primeștiInfinity;Math.hypotevită problema.
Comenzi înrudite
Math.pow: Ridică un număr la o putere și returnează rezultatul ca double; exponentul poate fi și negativ sau cu zecimale.Math.hypot: Calculează ipotenuza √(x² + y²), adică distanța de la origine la punctul (x, y), fără overflow intermediar.Double.isNaN: Verifică dacă un double este NaN („nu este număr”), rezultatul unor calcule fără sens, ca 0.0 / 0.0.Math: Clasa cu funcții matematice gata făcute: rotunjiri, puteri, radicali, trigonometrie, minim/maxim și calcule întregi sigure.