From eab7e4d4e4375aa68996908ab391d3fd6b621ff3 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 28 May 2007 21:43:31 +0400 Subject: [PATCH] Don't use log_01[] in my_strtod() to avoid loss of precision. This is for bug #28121. strings/strtod.c: Don't use log_01[] in my_strtod() to avoid loss of precision. --- strings/strtod.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/strings/strtod.c b/strings/strtod.c index 2d807520d77..a1799dd748b 100644 --- a/strings/strtod.c +++ b/strings/strtod.c @@ -244,8 +244,8 @@ double my_strtod(const char *str, char **end_ptr, int *error) else step= array_elements(log_10) - 1; for (; exponent > step; exponent-= step) - result*= neg_exp ? log_01[step] : log_10[step]; - result*= neg_exp ? log_01[exponent] : log_10[exponent]; + result= neg_exp ? result / log_10[step] : result * log_10[step]; + result= neg_exp ? result / log_10[exponent] : result * log_10[exponent]; } done: