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

◆ format_float()

fl::string fl::printf_detail::format_float ( float value,
int precision )
inline

Definition at line 133 of file printf.h.

133 {
134 if (precision < 0) {
135 // Default precision - use StrStream's default behavior
136 StrStream stream;
137 stream << value;
138 return stream.str();
139 }
140
141 // Simple precision formatting
142 // This is a basic implementation - could be enhanced
143 if (precision == 0) {
144 int int_part = static_cast<int>(value + 0.5f); // Round
145 StrStream stream;
146 stream << int_part;
147 return stream.str();
148 }
149
150 // For non-zero precision, use basic rounding
151 int multiplier = 1;
152 for (int i = 0; i < precision; ++i) {
153 multiplier *= 10;
154 }
155
156 int scaled = static_cast<int>(value * multiplier + 0.5f);
157 int int_part = scaled / multiplier;
158 int frac_part = scaled % multiplier;
159
160 StrStream stream;
161 stream << int_part;
162 stream << ".";
163
164 // Pad fractional part with leading zeros if needed
165 int temp_multiplier = multiplier / 10;
166 while (temp_multiplier > frac_part && temp_multiplier > 1) {
167 stream << "0";
168 temp_multiplier /= 10;
169 }
170 if (frac_part > 0) {
171 stream << frac_part;
172 }
173
174 return stream.str();
175}
const string & str() const
Definition strstream.h:51

References fl::StrStream::str().

+ Here is the call graph for this function: