FastLED 3.9.15
Loading...
Searching...
No Matches

◆ ftoa()

static void fl::string_functions::ftoa ( float value,
char * buffer,
int precision = 2 )
static

Definition at line 19 of file str.cpp.

19 {
20
21 FASTLED_UNUSED(precision);
22
23#ifdef FASTLED_TESTING
24 // use sprintf during testing
25 sprintf(buffer, "%f", value);
26 return;
27
28#else
29 // Handle negative values
30 if (value < 0) {
31 *buffer++ = '-';
32 value = -value;
33 }
34
35 // Extract integer part
36 uint32_t intPart = (uint32_t)value;
37
38 // Convert integer part to string (reversed)
39 char intBuf[12]; // Enough for 32-bit integers
40 int i = 0;
41 do {
42 intBuf[i++] = '0' + (intPart % 10);
43 intPart /= 10;
44 } while (intPart);
45
46 // Write integer part in correct order
47 while (i--) {
48 *buffer++ = intBuf[i];
49 }
50
51 *buffer++ = '.'; // Decimal point
52
53 // Extract fractional part
54 float fracPart = value - (uint32_t)value;
55 for (int j = 0; j < precision; ++j) {
56 fracPart *= 10.0f;
57 int digit = (int)fracPart;
58 *buffer++ = '0' + digit;
59 fracPart -= digit;
60 }
61
62 *buffer = '\0'; // Null-terminate
63#endif
64}
#define FASTLED_UNUSED(x)
Definition unused.h:3

References FASTLED_UNUSED.

Referenced by fl::StringFormatter::appendFloat().

+ Here is the caller graph for this function: