From 4db69760c65ec3f3003320c711cbedb5ee82b3b4 Mon Sep 17 00:00:00 2001 From: proddy Date: Sun, 21 Mar 2021 13:14:05 +0100 Subject: [PATCH] fix: rendering of floats --- src/helpers.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/helpers.cpp b/src/helpers.cpp index 4eaac6eb5..f8a7589a4 100644 --- a/src/helpers.cpp +++ b/src/helpers.cpp @@ -358,11 +358,13 @@ uint16_t Helpers::atoint(const char * value) { // rounds a number to 2 decimal places // example: round2(3.14159) -> 3.14 double Helpers::round2(double value, const uint8_t divider) { + uint8_t div = (divider ? divider : 1); // prevent div-by-zero + if (value >= 0) { - return (int)(value * 100 + 0.5) / 100.0; - } else { - return (int)(value * 100 - 0.5) / 100.0; + return (int)((value / div) * 100 + 0.5) / 100.0; } + + return (int)((value / div) * 100 - 0.5) / 100.0; // negative values } // abs of a signed 32-bit integer