diff --git a/panda/src/linmath/dblnames.h b/panda/src/linmath/dblnames.h index a2e7363e3e..47d143713e 100644 --- a/panda/src/linmath/dblnames.h +++ b/panda/src/linmath/dblnames.h @@ -46,7 +46,8 @@ #define FLOATTYPE_REPR(v, str) do { \ double v_copy = (v); \ char *into_str = (str); \ - if ((double)(long long)v_copy == v_copy) { \ + if (v_copy < 1e16 && v_copy > -1e16 && \ + (double)(long long)v_copy == v_copy) { \ snprintf(into_str, 32, "%lld", (long long)v_copy); \ } else { \ pdtoa(v_copy, into_str); \ diff --git a/panda/src/linmath/fltnames.h b/panda/src/linmath/fltnames.h index a69d651f51..c634b97cac 100644 --- a/panda/src/linmath/fltnames.h +++ b/panda/src/linmath/fltnames.h @@ -46,8 +46,9 @@ #define FLOATTYPE_REPR(v, str) do { \ float v_copy = (v); \ char *into_str = (str); \ - if ((float)(int)v_copy == v_copy) { \ - snprintf(into_str, 32, "%d", (int)v_copy); \ + if (v_copy < 1e16f && v_copy > -1e16f && \ + (float)(long long)v_copy == v_copy) { \ + snprintf(into_str, 32, "%lld", (long long)v_copy); \ } else { \ pftoa(v_copy, into_str); \ } \