From c060b2f3feeee6f6549f045ab8307a07e259d6e2 Mon Sep 17 00:00:00 2001 From: rdb Date: Sun, 3 Nov 2024 23:59:23 +0100 Subject: [PATCH] linmath: Fix vector printing issues with big values on emscripten --- panda/src/linmath/dblnames.h | 3 ++- panda/src/linmath/fltnames.h | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) 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); \ } \