diff --git a/src/helpers.cpp b/src/helpers.cpp index 1a015cafd..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; @@ -297,7 +302,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 +352,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)); }