@@ -100,6 +100,19 @@ String::String(unsigned long value, unsigned char base)
100
100
*this = buf;
101
101
}
102
102
103
+ String::String (float value, int decimalPlaces)
104
+ {
105
+ init ();
106
+ char buf[33 ];
107
+ *this = dtostrf (value, (decimalPlaces + 2 ), decimalPlaces, buf);
108
+ }
109
+
110
+ String::String (double value, int decimalPlaces)
111
+ {
112
+ init ();
113
+ char buf[33 ];
114
+ *this = dtostrf (value, (decimalPlaces + 2 ), decimalPlaces, buf);
115
+ }
103
116
String::~String ()
104
117
{
105
118
free (buffer);
@@ -283,6 +296,20 @@ unsigned char String::concat(unsigned long num)
283
296
return concat (buf, strlen (buf));
284
297
}
285
298
299
+ unsigned char String::concat (float num)
300
+ {
301
+ char buf[20 ];
302
+ char * string = dtostrf (num, 8 , 6 , buf);
303
+ return concat (string, strlen (string));
304
+ }
305
+
306
+ unsigned char String::concat (double num)
307
+ {
308
+ char buf[20 ];
309
+ char * string = dtostrf (num, 8 , 6 , buf);
310
+ return concat (string, strlen (string));
311
+ }
312
+
286
313
/* ********************************************/
287
314
/* Concatenate */
288
315
/* ********************************************/
@@ -343,6 +370,19 @@ StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num)
343
370
return a;
344
371
}
345
372
373
+ StringSumHelper & operator + (const StringSumHelper &lhs, float num)
374
+ {
375
+ StringSumHelper &a = const_cast <StringSumHelper&>(lhs);
376
+ if (!a.concat (num)) a.invalidate ();
377
+ return a;
378
+ }
379
+
380
+ StringSumHelper & operator + (const StringSumHelper &lhs, double num)
381
+ {
382
+ StringSumHelper &a = const_cast <StringSumHelper&>(lhs);
383
+ if (!a.concat (num)) a.invalidate ();
384
+ return a;
385
+ }
346
386
/* ********************************************/
347
387
/* Comparison */
348
388
/* ********************************************/
@@ -659,3 +699,8 @@ long String::toInt(void) const
659
699
}
660
700
661
701
702
+ float String::toFloat (void ) const
703
+ {
704
+ if (buffer) return float (atof (buffer));
705
+ return 0 ;
706
+ }
0 commit comments