@@ -129,6 +129,11 @@ size_t Print::print(unsigned long long n, int base)
129
129
}
130
130
}
131
131
132
+ size_t Print::print (float n, int digits)
133
+ {
134
+ return printFloat (n, digits);
135
+ }
136
+
132
137
size_t Print::print (double n, int digits)
133
138
{
134
139
return printFloat (n, digits);
@@ -221,6 +226,13 @@ size_t Print::println(unsigned long long num, int base)
221
226
return n;
222
227
}
223
228
229
+ size_t Print::println (float num, int digits)
230
+ {
231
+ size_t n = print (num, digits);
232
+ n += println ();
233
+ return n;
234
+ }
235
+
224
236
size_t Print::println (double num, int digits)
225
237
{
226
238
size_t n = print (num, digits);
@@ -406,7 +418,8 @@ size_t Print::printULLNumber(unsigned long long n64, uint8_t base)
406
418
return bytes;
407
419
}
408
420
409
- size_t Print::printFloat (double number, uint8_t digits)
421
+ template <class T >
422
+ size_t Print::printFloat (T number, uint8_t digits)
410
423
{
411
424
size_t n = 0 ;
412
425
@@ -430,7 +443,7 @@ size_t Print::printFloat(double number, uint8_t digits)
430
443
}
431
444
432
445
// Round correctly so that print(1.999, 2) prints as "2.00"
433
- double rounding = 0.5 ;
446
+ T rounding = 0.5 ;
434
447
for (uint8_t i = 0 ; i < digits; ++i) {
435
448
rounding /= 10.0 ;
436
449
}
@@ -439,7 +452,7 @@ size_t Print::printFloat(double number, uint8_t digits)
439
452
440
453
// Extract the integer part of the number and print it
441
454
unsigned long int_part = (unsigned long )number;
442
- double remainder = number - (double )int_part;
455
+ T remainder = number - (T )int_part;
443
456
n += print (int_part);
444
457
445
458
// Print the decimal point, but only if there are digits beyond
0 commit comments