Ce face f64::sqrt
x.sqrt() calculează rădăcina pătrată. Rezultatul este cel mai apropiat număr f64 de valoarea exactă. Pentru x negativ, rezultatul este NaN, nu o panică, așa că verifică intrarea dacă poate fi negativă.
Perechile utile: cbrt() pentru rădăcina cubică și hypot(y), care calculează sqrt(x² + y²) fără să depășească la numere foarte mari. Pentru întregi există isqrt.
Ce returnează
f64.
Exemple
Exemplul 1: Rădăcini pătrate
fn main() {
for x in [16.0_f64, 2.0, 0.25, 0.0, -9.0] {
println!("sqrt({x}) = {}", x.sqrt());
}
println!("cbrt(27) = {}", 27.0_f64.cbrt());
}
Rezultat
sqrt(16) = 4
sqrt(2) = 1.4142135623730951
sqrt(0.25) = 0.5
sqrt(0) = 0
sqrt(-9) = NaN
cbrt(27) = 3
Exemplul 2: Distanța dintre două puncte
Coordonate aproximative în kilometri pe o hartă plană. hypot dă același rezultat ca formula cu sqrt.
fn distanta(a: (f64, f64), b: (f64, f64)) -> f64 {
let dx = b.0 - a.0;
let dy = b.1 - a.1;
(dx * dx + dy * dy).sqrt()
}
fn main() {
let scoala = (2.0, 3.0);
let casa = (5.0, 7.0);
println!("distanța: {} km", distanta(scoala, casa));
println!("cu hypot: {} km", (casa.0 - scoala.0).hypot(casa.1 - scoala.1));
let aria_terenului = 1250.0_f64;
println!("latura unui pătrat cu aria {aria_terenului} m²: {:.2} m", aria_terenului.sqrt());
}
Rezultat
distanța: 5 km
cu hypot: 5 km
latura unui pătrat cu aria 1250 m²: 35.36 m
Greșeli frecvente
- Nu verifici dacă numărul este negativ și calculul continuă cu
NaN, care „contaminează” toate rezultatele următoare. - Scrii
sqrt(x)ca funcție: în Rust este metodă,x.sqrt()(sauf64::sqrt(x)).
Comenzi înrudite
i32::isqrt: Rădăcina pătrată întreagă: cel mai mare număr întreg al cărui pătrat nu depășește valoarea (17.isqrt() = 4).f64::powi: powi ridică la o putere întreagă (poate fi negativă), powf la o putere cu zecimale.f64::is_nan: Verifică dacă valoarea este NaN („nu e număr”), singurul mod sigur, pentru că NaN nu este egal nici cu el însuși.