if it's a big number, but still an integer, print it exactly!

git-svn-id: http://svn.code.sf.net/p/cjson/code@18 e3330c51-1366-4df0-8b21-3ccf24e3d50e
This commit is contained in:
Dave Gamble 2009-11-25 15:18:19 +00:00
parent 0dbe29ffe8
commit 501ff3b3d0
1 changed files with 3 additions and 2 deletions

View File

@ -121,8 +121,9 @@ static char *print_number(cJSON *item)
else
{
str=(char*)cJSON_malloc(64); // This is a nice tradeoff.
if (fabs(d)<1.0e-6 || fabs(d)>1.0e9) sprintf(str,"%e",d);
else sprintf(str,"%f",d);
if (fabs(floor(d)-d)<=DBL_EPSILON) sprintf(str,"%.0f",d);
else if (fabs(d)<1.0e-6 || fabs(d)>1.0e9) sprintf(str,"%e",d);
else sprintf(str,"%f",d);
}
return str;
}