get rid of isnormal test!!

This commit is contained in:
Dave Gamble 2016-05-29 16:19:05 +01:00
parent 4488c2b5ad
commit 2fe50bd557

View File

@ -166,7 +166,7 @@ static char *print_number(cJSON *item,printbuffer *p)
else str=(char*)cJSON_malloc(64); /* This is a nice tradeoff. */ else str=(char*)cJSON_malloc(64); /* This is a nice tradeoff. */
if (str) if (str)
{ {
if (!isnormal(d)) sprintf(str,"null"); if (d*0!=0) sprintf(str,"null"); /* This checks for NaN and Infinity */
else if (fabs(floor(d)-d)<=DBL_EPSILON && fabs(d)<1.0e60) sprintf(str,"%.0f",d); else if (fabs(floor(d)-d)<=DBL_EPSILON && fabs(d)<1.0e60) sprintf(str,"%.0f",d);
else if (fabs(d)<1.0e-6 || fabs(d)>1.0e9) sprintf(str,"%e",d); else if (fabs(d)<1.0e-6 || fabs(d)>1.0e9) sprintf(str,"%e",d);
else sprintf(str,"%f",d); else sprintf(str,"%f",d);