Ce face sqrt
sqrt este o funcție de nivel superior din biblioteca dart:math, deci trebuie importată cu import 'dart:math';. Primește un număr (int sau double) și returnează rădăcina lui pătrată ca double: sqrt(16) dă 4.0, nu 4.
Pentru un număr negativ, rezultatul este NaN (not a number), nu o eroare. Verifică-l cu .isNaN. Dacă ai nevoie de un întreg, convertește rezultatul cu .toInt() (taie zecimalele) sau .round().
Parametri
| Parametru | Descriere |
|---|---|
x |
Numărul din care se extrage rădăcina (int sau double). |
Ce returnează
Rădăcina pătrată ca double; NaN dacă x este negativ.
Exemple
Exemplul 1: Rădăcini pătrate simple
Rezultatul este mereu double, chiar și când rădăcina este exactă.
import 'dart:math';
void main() {
print(sqrt(16));
print(sqrt(2));
print(sqrt(2).toStringAsFixed(3));
print(sqrt(81).toInt());
print(sqrt(-4));
print(sqrt(-4).isNaN);
}
Rezultat
4.0
1.4142135623730951
1.414
9
NaN
true
Exemplul 2: Diagonala unei camere
Teorema lui Pitagora: diagonala unui dreptunghi este rădăcina sumei pătratelor laturilor.
import 'dart:math';
void main() {
const lungime = 4.2;
const latime = 3.5;
final diagonala = sqrt(lungime * lungime + latime * latime);
print('Camera din Iași are $lungime m x $latime m.');
print('Diagonala: ${diagonala.toStringAsFixed(2)} m');
}
Rezultat
Camera din Iași are 4.2 m x 3.5 m.
Diagonala: 5.47 m
Exemplul 3: Este un număr pătrat perfect?
Rotunjim rădăcina și verificăm dacă, ridicată la pătrat, dă înapoi numărul inițial.
import 'dart:math';
bool patratPerfect(int n) {
if (n < 0) return false;
final r = sqrt(n).round();
return r * r == n;
}
void main() {
for (final n in [25, 26, 144, 200]) {
print('$n: ${patratPerfect(n) ? 'da' : 'nu'}');
}
}
Rezultat
25: da
26: nu
144: da
200: nu
Greșeli frecvente
- Uiți
import 'dart:math';. Fără el,sqrtnu este definit șidart analyzedă eroare. - Pui rezultatul într-o variabilă
int:int r = sqrt(9);nu compilează, pentru căsqrtreturneazădouble. Scriesqrt(9).toInt(). - Compari rezultatul cu
==la valori cu zecimale:sqrt(2) * sqrt(2) == 2estefalsedin cauza rotunjirilor. Compară diferența cu o toleranță mică.
Comenzi înrudite
pow: Ridică un număr la o putere; cu baza și exponentul întregi dă int, altfel double.exp: exp(x) calculează e la puterea x, iar log(x) este logaritmul natural (în baza e), inversa lui exp.max: max returnează cel mai mare dintre două numere, iar min pe cel mai mic; păstrează tipul argumentelor.pi: Constantele matematice din dart:math: pi, e, sqrt2, ln10 (și ln2, log2e, log10e, sqrt1_2).