From 93c8da42773779edad449fc13c638803f4b668e7 Mon Sep 17 00:00:00 2001 From: pennam Date: Mon, 4 May 2026 10:33:33 +0200 Subject: [PATCH] fix FLOAT / DOUBLE String buffer size We need an additional +1 because 10^n makes use of n+1 digits --- api/String.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/String.cpp b/api/String.cpp index 4f176374..8cf17b5d 100644 --- a/api/String.cpp +++ b/api/String.cpp @@ -124,7 +124,7 @@ String::String(unsigned long value, unsigned char base) String::String(float value, unsigned char decimalPlaces) { - static size_t const FLOAT_BUF_SIZE = FLT_MAX_10_EXP + FLT_MAX_DECIMAL_PLACES + 1 /* '-' */ + 1 /* '.' */ + 1 /* '\0' */; + static size_t const FLOAT_BUF_SIZE = (FLT_MAX_10_EXP + 1) + FLT_MAX_DECIMAL_PLACES + 1 /* '-' */ + 1 /* '.' */ + 1 /* '\0' */; init(); char buf[FLOAT_BUF_SIZE]; decimalPlaces = min(decimalPlaces, FLT_MAX_DECIMAL_PLACES); @@ -133,7 +133,7 @@ String::String(float value, unsigned char decimalPlaces) String::String(double value, unsigned char decimalPlaces) { - static size_t const DOUBLE_BUF_SIZE = DBL_MAX_10_EXP + DBL_MAX_DECIMAL_PLACES + 1 /* '-' */ + 1 /* '.' */ + 1 /* '\0' */; + static size_t const DOUBLE_BUF_SIZE = (DBL_MAX_10_EXP + 1) + DBL_MAX_DECIMAL_PLACES + 1 /* '-' */ + 1 /* '.' */ + 1 /* '\0' */; init(); char buf[DOUBLE_BUF_SIZE]; decimalPlaces = min(decimalPlaces, DBL_MAX_DECIMAL_PLACES);