diff --git a/src/libstd/num/f64.rs b/src/libstd/num/f64.rs index 14c540e819e96..252a941d86c80 100644 --- a/src/libstd/num/f64.rs +++ b/src/libstd/num/f64.rs @@ -454,7 +454,11 @@ impl f64 { #[stable(feature = "rust1", since = "1.0.0")] #[inline] pub fn sqrt(self) -> f64 { - unsafe { intrinsics::sqrtf64(self) } + if self < 0.0 { + NAN + } else { + unsafe { intrinsics::sqrtf64(self) } + } } /// Returns `e^(self)`, (the exponential function).