Fixes serialization of small floats
Now uses std::snprintf() to generate a "%.15g" formatted string for JSON values of type number_float. 15 decimals digits are enough to round-trip an IEEE 754 double from string->double->string and get an identical result. std::snprintf is called twice. Once to determine the required buffer size and then again after allocating a buffer of that size. Note that the buffer size *could* be hardcoded for better performance. "%.15g" should result in strings of maximum length 23, plus one character for the terminating null for a buffer size of 24.
Showing
Please register or sign in to comment