diff --git a/src/lib.rs b/src/lib.rs index a6c202c9..0beed61f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -224,6 +224,13 @@ macro_rules! float_trait_impl { use self::FloatErrorKind::*; use self::ParseFloatError as PFE; + // Special case radix 10 to use more accurate standard library implementation + if radix == 10 { + return src.parse().map_err(|_| PFE { + kind: if src.is_empty() { Empty } else { Invalid }, + }); + } + // Special values match src { "inf" => return Ok(core::$t::INFINITY),