Use max_digits10 in dump_float for float->text->float round-trip

This commit is contained in:
abolz 2018-01-15 21:26:03 +01:00
parent 810f81bbd9
commit 9b9919d460
2 changed files with 4 additions and 4 deletions

View File

@ -665,8 +665,8 @@ class serializer
void dump_float(number_float_t x, std::false_type /*is_ieee_single_or_double*/) void dump_float(number_float_t x, std::false_type /*is_ieee_single_or_double*/)
{ {
// get number of digits for a text -> float -> text round-trip // get number of digits for a float -> text -> float round-trip
static constexpr auto d = std::numeric_limits<number_float_t>::digits10; static constexpr auto d = std::numeric_limits<number_float_t>::max_digits10;
// the actual conversion // the actual conversion
std::ptrdiff_t len = snprintf(number_buffer.data(), number_buffer.size(), "%.*g", d, x); std::ptrdiff_t len = snprintf(number_buffer.data(), number_buffer.size(), "%.*g", d, x);

View File

@ -8136,8 +8136,8 @@ class serializer
void dump_float(number_float_t x, std::false_type /*is_ieee_single_or_double*/) void dump_float(number_float_t x, std::false_type /*is_ieee_single_or_double*/)
{ {
// get number of digits for a text -> float -> text round-trip // get number of digits for a float -> text -> float round-trip
static constexpr auto d = std::numeric_limits<number_float_t>::digits10; static constexpr auto d = std::numeric_limits<number_float_t>::max_digits10;
// the actual conversion // the actual conversion
std::ptrdiff_t len = snprintf(number_buffer.data(), number_buffer.size(), "%.*g", d, x); std::ptrdiff_t len = snprintf(number_buffer.data(), number_buffer.size(), "%.*g", d, x);