2525#include " WString.h"
2626#include " stdlib_noniso.h"
2727
28+ #include < limits>
29+
2830#define OOM_STRING_BORDER_DISPLAY 10
2931#define OOM_STRING_THRESHOLD_REALLOC_WARN 128
3032
3840static String toString (unsigned char value, unsigned char base) {
3941 String out;
4042
41- char buf[1 + 8 * sizeof ( unsigned char ) ];
43+ char buf[1 + std::numeric_limits< unsigned char >::digits ];
4244 out = utoa (value, buf, base);
4345
4446 return out;
@@ -47,20 +49,16 @@ static String toString(unsigned char value, unsigned char base) {
4749static String toString (int value, unsigned char base) {
4850 String out;
4951
50- char buf[2 + 8 * sizeof (int )];
51- if (base == 10 ) {
52- out.concat (buf, sprintf (buf, " %d" , value));
53- } else {
54- out = itoa (value, buf, base);
55- }
52+ char buf[2 + std::numeric_limits<int >::digits];
53+ out = itoa (value, buf, base);
5654
5755 return out;
5856}
5957
6058static String toString (unsigned int value, unsigned char base) {
6159 String out;
6260
63- char buf[1 + 8 * sizeof ( unsigned int ) ];
61+ char buf[1 + std::numeric_limits< unsigned int >::digits ];
6462 out = utoa (value, buf, base);
6563
6664 return out;
@@ -69,20 +67,16 @@ static String toString(unsigned int value, unsigned char base) {
6967static String toString (long value, unsigned char base) {
7068 String out;
7169
72- char buf[2 + 8 * sizeof (long )];
73- if (base == 10 ) {
74- out.concat (buf, sprintf (buf, " %ld" , value));
75- } else {
76- out = ltoa (value, buf, base);
77- }
70+ char buf[2 + std::numeric_limits<long >::digits];
71+ out = ltoa (value, buf, base);
7872
7973 return out;
8074}
8175
8276static String toString (unsigned long value, unsigned char base) {
8377 String out;
8478
85- char buf[1 + 8 * sizeof ( unsigned long ) ];
79+ char buf[1 + std::numeric_limits< unsigned long >::digits ];
8680 out = ultoa (value, buf, base);
8781
8882 return out;
@@ -93,30 +87,22 @@ static String toString(unsigned long value, unsigned char base) {
9387static String toString (long long value, unsigned char base) {
9488 String out;
9589
96- char buf[2 + 8 * sizeof (long long )];
97- if (base == 10 ) {
98- out.concat (buf, sprintf (buf, " %lld" , value));
99- } else {
100- out = lltoa (value, buf, sizeof (buf), base);
101- }
90+ char buf[2 + std::numeric_limits<long long >::digits];
91+ out = lltoa (value, buf, sizeof (buf), base);
10292
10393 return out;
10494}
10595
10696static String toString (unsigned long long value, unsigned char base) {
10797 String out;
10898
109- char buf[1 + 8 * sizeof (unsigned long long )];
110- if (base == 10 ) {
111- out.concat (buf, sprintf (buf, " %llu" , value));
112- } else {
113- out = ulltoa (value, buf, sizeof (buf), base);
114- }
99+ char buf[1 + std::numeric_limits<unsigned long long >::digits];
100+ out = ulltoa (value, buf, sizeof (buf), base);
115101
116102 return out;
117103}
118104
119- static String toString (float value, unsigned char decimalPlaces) {
105+ static String toString (double value, unsigned char decimalPlaces) {
120106 String out;
121107
122108 char buf[33 ];
@@ -125,13 +111,8 @@ static String toString(float value, unsigned char decimalPlaces) {
125111 return out;
126112}
127113
128- static String toString (double value, unsigned char decimalPlaces) {
129- String out;
130-
131- char buf[33 ];
132- out = dtostrf (value, (decimalPlaces + 2 ), decimalPlaces, buf);
133-
134- return out;
114+ static String toString (float value, unsigned char decimalPlaces) {
115+ return toString (static_cast <double >(value), decimalPlaces);
135116}
136117
137118/* ********************************************/
0 commit comments