Save space, drop unuseful trailing zeroes

This commit is contained in:
Remi Collet
2012-12-13 11:22:31 +01:00
parent 4014fe86d9
commit 8c847968c7

View File

@@ -552,13 +552,25 @@ static int json_object_double_to_json_string(struct json_object* jso,
int level, int level,
int flags) int flags)
{ {
char buf[128], *p; char buf[128], *p, *q;
int size; int size;
size = snprintf(buf, 128, "%f", jso->o.c_double); size = snprintf(buf, 128, "%f", jso->o.c_double);
p = strchr(buf, ','); p = strchr(buf, ',');
if (p) { if (p) {
*p = '.'; *p = '.';
} else {
p = strchr(buf, '.');
}
if (p) {
/* last useful digit, always keep 1 zero */
p++;
for (q=p ; *q ; q++) {
if (*q!='0') p=q;
}
/* drop trailing zeroes */
*(++p) = 0;
size = p-buf;
} }
printbuf_memappend(pb, buf, size); printbuf_memappend(pb, buf, size);
return size; return size;