BasicParser::parseNumber() out of range fix

This commit is contained in:
clasher113 2025-07-20 12:14:13 +03:00
parent 941d3bcf8e
commit 14aa5df586

View File

@ -435,9 +435,10 @@ dv::value BasicParser<CharT>::parseNumber(int sign) {
static_cast<int64_t>(std::log10(afterdot) + 1) static_cast<int64_t>(std::log10(afterdot) + 1)
) )
); );
c = source[pos];
double dvalue = (value + (afterdot / (double)expo)); double dvalue = (value + (afterdot / (double)expo));
if (hasNext()){
c = source[pos];
if (c == 'e' || c == 'E') { if (c == 'e' || c == 'E') {
pos++; pos++;
int s = 1; int s = 1;
@ -449,6 +450,7 @@ dv::value BasicParser<CharT>::parseNumber(int sign) {
} }
return sign * dvalue * power(10.0, s * parseSimpleInt(10)); return sign * dvalue * power(10.0, s * parseSimpleInt(10));
} }
}
return sign * dvalue; return sign * dvalue;
} }
return sign * value; return sign * value;