value += parseFractionalPart(false);
    public double parse() throws NumberFormatException {        if (index >= chars.length)            throw new NumberFormatException();        char sign = '+';        switch (chars[index]) {        case '-':            sign = '-';            index++;            break;        case '+':            sign = '+';            index++;            break;        }        if (index >= chars.length)            throw new NumberFormatException();        double value;        if (chars[index] == '.') {            index++;            value = parseFractionalPart(true);            value = parseExponent(value);        } else {            value = parseUnsignedInt();            if (index >= chars.length)                throw new NumberFormatException();            if (chars[index] != '.')                throw new NumberFormatException();            index++;            value += parseFractionalPart(false);            value = parseExponent(value);        }        return (sign == '-') ? -value : value;    }