• Joshua C. Randall's avatar
    Fixes serialization of small floats · 7bfcbe28
    Joshua C. Randall authored
    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.
    7bfcbe28
json.hpp 127 KB