From 57057cac0ecba68ec32579dd18cc33ebf72cfe66 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Wed, 9 Nov 2022 15:08:07 +0100 Subject: [PATCH 1/2] fix #736 --- src/helpers.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/helpers.cpp b/src/helpers.cpp index 1a015cafd..de94efc40 100644 --- a/src/helpers.cpp +++ b/src/helpers.cpp @@ -297,7 +297,7 @@ char * Helpers::render_value(char * result, const int32_t value, const int8_t fo } else if (format > 0) { strlcat(result, itoa(new_value / format, s, 10), sizeof(s)); strlcat(result, ".", sizeof(s)); - strlcat(result, itoa(((new_value % format) * 10 + format / 2) / format, s, 10), sizeof(s)); + strlcat(result, itoa(((new_value % format) * 10) / format, s, 10), sizeof(s)); } else { strlcat(result, itoa(new_value * format * -1, s, 10), sizeof(s)); } @@ -347,7 +347,7 @@ char * Helpers::render_value(char * result, const uint32_t value, const int8_t f } else if (format > 0) { strlcpy(result, ltoa(new_value / format, s, 10), sizeof(s)); strlcat(result, ".", sizeof(s)); - strlcat(result, itoa(((new_value % format) * 10 + format / 2) / format, s, 10), sizeof(s)); + strlcat(result, itoa(((new_value % format) * 10) / format, s, 10), sizeof(s)); } else { strlcpy(result, ltoa(new_value * format * -1, s, 10), sizeof(s)); } From aeee37fdaedc39a731814772bf8b5805df19ed1b Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Thu, 10 Nov 2022 12:17:05 +0100 Subject: [PATCH 2/2] fix render_value float, leading zeros to decimals --- src/helpers.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/helpers.cpp b/src/helpers.cpp index de94efc40..a653e371a 100644 --- a/src/helpers.cpp +++ b/src/helpers.cpp @@ -262,6 +262,11 @@ char * Helpers::render_value(char * result, const float value, const int8_t form *result++ = '.'; int32_t decimal = abs((int32_t)((value - whole) * p[format])); + for (int8_t i = 1; i < format; i++) { + if (decimal < p[i]) { + *result++ = '0'; // add leading zeros + } + } itoa(decimal, result, 10); return ret;