in src/codec/number.cpp [43:58]
double decode_double(decode_context &context) {
using atod_converter = double_conversion::StringToDoubleConverter;
static const atod_converter converter(
atod_converter::ALLOW_TRAILING_JUNK,
std::numeric_limits<double>::quiet_NaN(),
std::numeric_limits<double>::quiet_NaN(),
nullptr,
nullptr);
int bytes_read = 0;
auto remaining = static_cast<int>(context.end - context.position);
auto result = converter.StringToDouble(context.position, remaining, &bytes_read);
fail_if(context, std::isnan(result), "Invalid floating point number");
skip_unchecked_n(context, bytes_read);
return result;
}