diff --git a/api/String.cpp b/api/String.cpp index 4f176374..c86d3b3c 100644 --- a/api/String.cpp +++ b/api/String.cpp @@ -328,14 +328,16 @@ bool String::concat(unsigned long num) bool String::concat(float num) { - char buf[20]; + static size_t const FLOAT_BUF_SIZE = (FLT_MAX_10_EXP + 1) + 2 /* FIXED DECIMAL PLACES */ + 1 /* '-' */ + 1 /* '.' */ + 1 /* '\0' */; + char buf[FLOAT_BUF_SIZE]; char* string = dtostrf(num, 4, 2, buf); return concat(string); } bool String::concat(double num) { - char buf[20]; + static size_t const DOUBLE_BUF_SIZE = (DBL_MAX_10_EXP + 1) + 2 /* FIXED DECIMAL PLACES */ + 1 /* '-' */ + 1 /* '.' */ + 1 /* '\0' */; + char buf[DOUBLE_BUF_SIZE]; char* string = dtostrf(num, 4, 2, buf); return concat(string); }