Unverified Commit 54bd1b51 authored by Niels Lohmann's avatar Niels Lohmann

Merge branch 'develop' into feature/issue698

parents 49122314 7435d54e
...@@ -6659,17 +6659,16 @@ class serializer ...@@ -6659,17 +6659,16 @@ class serializer
const bool is_negative = std::is_same<NumberType, number_integer_t>::value and (x < 0); const bool is_negative = std::is_same<NumberType, number_integer_t>::value and (x < 0);
std::size_t i = 0; std::size_t i = 0;
// spare 1 byte for '\0' while (x != 0)
while (x != 0 and i < number_buffer.size() - 1)
{ {
// spare 1 byte for '\0'
assert(i < number_buffer.size() - 1);
const auto digit = std::labs(static_cast<long>(x % 10)); const auto digit = std::labs(static_cast<long>(x % 10));
number_buffer[i++] = static_cast<char>('0' + digit); number_buffer[i++] = static_cast<char>('0' + digit);
x /= 10; x /= 10;
} }
// make sure the number has been processed completely
assert(x == 0);
if (is_negative) if (is_negative)
{ {
// make sure there is capacity for the '-' // make sure there is capacity for the '-'
...@@ -6698,20 +6697,6 @@ class serializer ...@@ -6698,20 +6697,6 @@ class serializer
return; return;
} }
// special case for 0.0 and -0.0
if (x == 0)
{
if (std::signbit(x))
{
o->write_characters("-0.0", 4);
}
else
{
o->write_characters("0.0", 3);
}
return;
}
// get number of digits for a text -> float -> text round-trip // get number of digits for a text -> float -> text round-trip
static constexpr auto d = std::numeric_limits<number_float_t>::digits10; static constexpr auto d = std::numeric_limits<number_float_t>::digits10;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment