mirror of
https://github.com/json-c/json-c.git
synced 2026-03-29 01:49:06 +08:00
bugfix: floating point representaion without fractional part
closes https://github.com/json-c/json-c/issues/278
This commit is contained in:
@@ -693,6 +693,7 @@ static int json_object_double_to_json_string_format(struct json_object* jso,
|
||||
{
|
||||
char buf[128], *p, *q;
|
||||
int size;
|
||||
double dummy; /* needed for modf() */
|
||||
/* Although JSON RFC does not support
|
||||
NaN or Infinity as numeric values
|
||||
ECMA 262 section 9.8.1 defines
|
||||
@@ -706,7 +707,9 @@ static int json_object_double_to_json_string_format(struct json_object* jso,
|
||||
size = snprintf(buf, sizeof(buf), "-Infinity");
|
||||
else
|
||||
size = snprintf(buf, sizeof(buf),
|
||||
format ? format : "%.17g", jso->o.c_double);
|
||||
format ? format :
|
||||
(modf(jso->o.c_double, &dummy) == 0) ? "%.17g.0" : "%.17g",
|
||||
jso->o.c_double);
|
||||
|
||||
p = strchr(buf, ',');
|
||||
if (p) {
|
||||
|
||||
Reference in New Issue
Block a user