Double is converted to invalid string when exponential notation is used
If a string converted from a double number does not have "." then ".0" is appended to the end of the string to distinguish double and integer. However, this behavior causes an invalid exponential notation. For example, the double number 1e-08 is converted to "1e-08.0". Would you test
(g_strstr_len (buf, G_ASCII_DTOSTR_BUF_SIZE, "e") == NULL)
before appending ".0"?