From ad9fc9f559e78a764aac20f669f23cdd020cd943 Mon Sep 17 00:00:00 2001 From: Mark Feit Date: Thu, 14 Mar 2019 15:07:35 -0400 Subject: Improve jv_is_integer() --- src/jv.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/jv.c b/src/jv.c index 2427b009..2f87bab5 100644 --- a/src/jv.c +++ b/src/jv.c @@ -7,6 +7,7 @@ #include #include #include +#include #include "jv_alloc.h" #include "jv.h" @@ -152,11 +153,11 @@ int jv_is_integer(jv j){ return 0; } double x = jv_number_value(j); - if(x != x || x > INT_MAX || x < INT_MIN){ - return 0; - } - return x == (int)x; + double ipart; + double fpart = modf(x, &ipart); + + return fabs(fpart) < DBL_EPSILON; } /* -- cgit v1.2.3