std::sqrt în C++

Calculează rădăcina pătrată (sqrt) sau rădăcina cubică (cbrt) a unui număr.

Sintaxă
double sqrt(double x);
double cbrt(double x);  // C++11

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.