Encode reals correctly
authorPetri Lehtinen <petri@digip.org>
Thu, 17 Dec 2009 21:42:13 +0000 (23:42 +0200)
committerPetri Lehtinen <petri@digip.org>
Thu, 17 Dec 2009 22:05:06 +0000 (00:05 +0200)
commitec96cbf01693a90db15a13c3e77f68909036989e
treed697085af6755c905cf664ff84176ed115e5c96e
parent7c707a73a2251c20afaecc028267b99d0ee60184
Encode reals correctly

This patch changes the sprintf format from "%0.17f" to "%.17g", as the
f format specifier doesn't print the exponent at all. This caused
losing precision in all but the most simple cases.

Because the g specifier doesn't print the decimal fraction or exponent
if they're not needed, a ".0" has to be appended by hand in these
cases. Otherwise the value's type changes from real to integer when
decoding again.

Thanks to Philip Grandinetti for reporting this issue.
src/dump.c