diff options
Diffstat (limited to 'strings/strtod.c')
-rw-r--r-- | strings/strtod.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/strings/strtod.c b/strings/strtod.c index a06b74248cb..4c3f31bc00c 100644 --- a/strings/strtod.c +++ b/strings/strtod.c @@ -36,6 +36,11 @@ static double scaler1[] = { 1.0, 10.0, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9 }; + +#ifndef HUGE_VAL /* Should be +Infinitive */ +#define HUGE_VAL DBL_MAX +#endif + double my_strtod(const char *str, char **end) { double result= 0.0; @@ -90,10 +95,7 @@ double my_strtod(const char *str, char **end) } if (exp >= 1000) { - if (neg) - result= 0.0; - else - result= DBL_MAX*10; + result= neg ? 0.0 : HUGE_VAL; goto done; } while (exp >= 100) |