diff --git a/jv_dtoa.c b/jv_dtoa.c index 251a6916..b8325267 100644 --- a/jv_dtoa.c +++ b/jv_dtoa.c @@ -4225,7 +4225,7 @@ jvp_dtoa while((*b++ = *s++)); goto done0; } - if (decpt <= -4 || decpt > se - s + 5) { + if (decpt <= -4 || decpt > se - s + 15) { *b++ = *s++; if (*s) { *b++ = '.'; diff --git a/jv_dtoa.h b/jv_dtoa.h index 3bafcf47..7aa5f08a 100644 --- a/jv_dtoa.h +++ b/jv_dtoa.h @@ -17,6 +17,6 @@ double jvp_strtod(struct dtoa_context* C, const char* s, char** se); char* jvp_dtoa(struct dtoa_context* C, double dd, int mode, int ndigits, int *decpt, int *sign, char **rve); void jvp_freedtoa(struct dtoa_context* C, char *s); -#define JVP_DTOA_FMT_MAX_LEN 32 +#define JVP_DTOA_FMT_MAX_LEN 64 char* jvp_dtoa_fmt(struct dtoa_context* C, register char *b, double x); #endif