Ce face std::sqrt
std::sqrt(x) returnează numărul care, ridicat la pătrat, dă x. Pentru x negativ, rezultatul este NaN („not a number”), nu o eroare. Pentru rădăcina unui număr negativ ai nevoie de std::complex.
std::cbrt(x) calculează rădăcina cubică și funcționează și pentru numere negative: cbrt(-27) = -3.
Parametri
| Parametru | Descriere |
|---|---|
x |
Numărul (pentru sqrt, cel puțin 0). |
Ce returnează
Rădăcina, ca double (sau float/long double, după argument).
Exemple
Exemplul 1: Rădăcini și valori speciale
#include <cmath>
#include <print>
int main() {
std::println("sqrt(144) = {}", std::sqrt(144.0));
std::println("sqrt(2) = {:.6f}", std::sqrt(2.0));
std::println("cbrt(27) = {}", std::cbrt(27.0));
std::println("cbrt(-8) = {}", std::cbrt(-8.0));
double negativ = -4.0;
std::println("sqrt(-4) = {}", std::sqrt(negativ));
}
Rezultat
sqrt(144) = 12
sqrt(2) = 1.414214
cbrt(27) = 3
cbrt(-8) = -2
sqrt(-4) = nan
Exemplul 2: Latura unui teren pătrat
#include <cmath>
#include <print>
int main() {
double suprafata_mp = 500.0;
double latura = std::sqrt(suprafata_mp);
std::println("Un teren pătrat de {} m² are latura de {:.2f} m", suprafata_mp, latura);
}
Rezultat
Un teren pătrat de 500 m² are latura de 22.36 m
Greșeli frecvente
- Verifici dacă un număr este pătrat perfect cu
std::sqrt(n) == (int)std::sqrt(n)pentru numere foarte mari: erorile de rotunjire pot da rezultate greșite. Verifică cu întregi:r * r == n.
Comenzi înrudite
std::pow: Ridică un număr la o putere: baza la exponent. Exponentul poate fi și negativ sau cu zecimale.std::hypot: Calculează ipotenuza, adică √(x² + y²), fără depășiri la valori mari; din C++17 și în 3 dimensiuni.std::isnan: Verifică dacă un număr cu virgulă este NaN (rezultat nedefinit) sau infinit (inf).std::complex: Numere complexe (a + bi), cu operațiile aritmetice obișnuite, modul, argument și funcții matematice.