BasicParser::parseNumber() out of range fix
This commit is contained in:
parent
941d3bcf8e
commit
14aa5df586
@ -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;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user