File tree Expand file tree Collapse file tree 2 files changed +18
-4
lines changed Expand file tree Collapse file tree 2 files changed +18
-4
lines changed Original file line number Diff line number Diff line change 2323#include " itoa.h"
2424#include " deprecated-avr-comp/avr/dtostrf.h"
2525
26+ #include < float.h>
27+
28+ namespace arduino {
29+
2630/* ********************************************/
27- /* Constructors */
31+ /* Static Member Initialisation */
2832/* ********************************************/
2933
30- namespace arduino {
34+ size_t const String::FLT_MAX_DECIMAL_PLACES;
35+ size_t const String::DBL_MAX_DECIMAL_PLACES;
36+
37+ /* ********************************************/
38+ /* Constructors */
39+ /* ********************************************/
3140
3241String::String (const char *cstr)
3342{
@@ -111,15 +120,17 @@ String::String(unsigned long value, unsigned char base)
111120
112121String::String (float value, unsigned char decimalPlaces)
113122{
123+ static size_t const FLOAT_BUF_SIZE = FLT_MAX_10_EXP + FLT_MAX_DECIMAL_PLACES + 1 /* '-' */ + 1 /* '.' */ + 1 /* '\0' */ ;
114124 init ();
115- char buf[33 ];
125+ char buf[FLOAT_BUF_SIZE ];
116126 *this = dtostrf (value, (decimalPlaces + 2 ), decimalPlaces, buf);
117127}
118128
119129String::String (double value, unsigned char decimalPlaces)
120130{
131+ static size_t const DOUBLE_BUF_SIZE = DBL_MAX_10_EXP + DBL_MAX_DECIMAL_PLACES + 1 /* '-' */ + 1 /* '.' */ + 1 /* '\0' */ ;
121132 init ();
122- char buf[33 ];
133+ char buf[DOUBLE_BUF_SIZE ];
123134 *this = dtostrf (value, (decimalPlaces + 2 ), decimalPlaces, buf);
124135}
125136
Original file line number Diff line number Diff line change @@ -58,6 +58,9 @@ class String
5858 typedef void (String::*StringIfHelperType)() const ;
5959 void StringIfHelper () const {}
6060
61+ static size_t const FLT_MAX_DECIMAL_PLACES = 10 ;
62+ static size_t const DBL_MAX_DECIMAL_PLACES = FLT_MAX_DECIMAL_PLACES;
63+
6164public:
6265 // constructors
6366 // creates a copy of the initial value.
You can’t perform that action at this time.
0 commit comments