Definition at line 15 of file stdio.cpp.hpp.
15 {
16 const bool negative =
value < 0.0f;
18 int exponent = 0;
19 while (magnitude >= 10.0f) {
20 magnitude /= 10.0f;
21 ++exponent;
22 }
23 while (magnitude > 0.0f && magnitude < 1.0f) {
24 magnitude *= 10.0f;
25 --exponent;
26 }
27
28
29
30
31
32
33 float half_step = 0.5f;
34 for (int digit = 0; digit < precision; ++digit) {
35 half_step /= 10.0f;
36 }
37 if (magnitude >= 10.0f - half_step) {
38 magnitude /= 10.0f;
39 ++exponent;
40 }
41
42 sstream stream;
43 if (negative) {
44 stream << "-";
45 }
46
48 stream << "e";
49 if (exponent < 0) {
50 stream << "-";
51 exponent = -exponent;
52 } else {
53 stream << "+";
54 }
55 if (exponent < 10) {
56 stream << "0";
57 }
58 stream << exponent;
59 return stream.str();
60}
fl::string format_float(float value, int precision) FL_NO_EXCEPT
constexpr int type_rank< T >::value
References fl::FL_NO_EXCEPT, format_float(), fl::sstream::str(), and fl::type_rank< T >::value.
Referenced by format_float().