diff --git a/Cargo.toml b/Cargo.toml index 31420a2..90c6bfb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,6 +18,7 @@ bench = false [dependencies] num-traits = "0.2" +fast-float = "0.2" [dev-dependencies] pretty_assertions = "^1" diff --git a/src/types/extended_float/impl_conversions.rs b/src/types/extended_float/impl_conversions.rs index 262de61..b3bc5a1 100644 --- a/src/types/extended_float/impl_conversions.rs +++ b/src/types/extended_float/impl_conversions.rs @@ -40,11 +40,11 @@ pub enum FromStrError { Invalid, } -impl FromStr for ExtendedFloat { +impl FromStr for ExtendedFloat { type Err = FromStrError; fn from_str(s: &str) -> Result { - let v: T = s.parse().map_err(|_| FromStrError::Invalid)?; + let v: T = fast_float::parse(s).map_err(|_| FromStrError::Invalid)?; ExtendedFloat::try_from_value(v).map_err(|_| FromStrError::Invalid) } }