Fixed floating point value parsing in the form "4e2" or "4E2".

This commit is contained in:
Benoit Blanchon
2014-11-08 15:56:40 +01:00
parent 2e47d546b2
commit 1c450fd3aa
3 changed files with 8 additions and 5 deletions

View File

@ -165,9 +165,12 @@ void JsonParser::parseBooleanTo(JsonVariant &destination) {
void JsonParser::parseNumberTo(JsonVariant &destination) {
char *endOfLong;
long longValue = strtol(_ptr, &endOfLong, 10);
char stopChar = *endOfLong;
// Could it be a floating point value?
if (*endOfLong == '.') {
bool couldBeFloat = stopChar == '.' || stopChar == 'e' || stopChar == 'E';
if (couldBeFloat) {
// Yes => parse it as a double
double doubleValue = strtod(_ptr, &_ptr);
// Count the decimal digits