sqrt în Dart

Calculează rădăcina pătrată a unui număr și returnează mereu un double; pentru numere negative dă NaN.

Sintaxă
import 'dart:math';

double sqrt(num x)

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, sqrt nu este definit și dart analyze dă eroare.
  • Pui rezultatul într-o variabilă int: int r = sqrt(9); nu compilează, pentru că sqrt returnează double. Scrie sqrt(9).toInt().
  • Compari rezultatul cu == la valori cu zecimale: sqrt(2) * sqrt(2) == 2 este false din 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).