diff --git a/src/modp_numtoa.c b/src/modp_numtoa.c index 0725e58159..f6b7059d8a 100644 --- a/src/modp_numtoa.c +++ b/src/modp_numtoa.c @@ -55,6 +55,7 @@ static void sn_strip_trailing_zeros(char* str) if ( ! frac ) return; + char* start_dec = frac; char* exp = 0; char* trailing_zeros = 0; @@ -80,6 +81,9 @@ static void sn_strip_trailing_zeros(char* str) ++frac; } + if ( trailing_zeros == start_dec ) + --trailing_zeros; + if ( trailing_zeros && exp ) { for ( ; ; ) diff --git a/testing/btest/Baseline/language.double/out b/testing/btest/Baseline/language.double/out index 453fae924f..143e1a7c81 100644 --- a/testing/btest/Baseline/language.double/out +++ b/testing/btest/Baseline/language.double/out @@ -44,12 +44,12 @@ max double value = 1.7976931348623157e+308 (PASS) 0.5 5.0 -1.e-13 +1e-13 9.9999999999999998e-13 9.9999999999999994e-12 -1.e-10 +1e-10 1.0000000000000001e-09 -1.e-08 +1e-08 9.9999999999999995e-08 0.000001