Don't use log_01[] in my_strtod() to avoid loss of precision.
This is for bug #28121.
This commit is contained in:
parent
afc59d3381
commit
0dc78d3913
@ -244,8 +244,8 @@ double my_strtod(const char *str, char **end_ptr, int *error)
|
|||||||
else
|
else
|
||||||
step= array_elements(log_10) - 1;
|
step= array_elements(log_10) - 1;
|
||||||
for (; exponent > step; exponent-= step)
|
for (; exponent > step; exponent-= step)
|
||||||
result*= neg_exp ? log_01[step] : log_10[step];
|
result= neg_exp ? result / log_10[step] : result * log_10[step];
|
||||||
result*= neg_exp ? log_01[exponent] : log_10[exponent];
|
result= neg_exp ? result / log_10[exponent] : result * log_10[exponent];
|
||||||
}
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user