private SchemaAndValue parseNextToken(boolean embedded, String token) {
            char firstChar = token.charAt(0);
            boolean firstCharIsDigit = Character.isDigit(firstChar);

            // Temporal types are more restrictive, so try them first
            if (firstCharIsDigit) {
                SchemaAndValue temporal = parseMultipleTokensAsTemporal(token);
                if (temporal != null) {
                    return temporal;
                }
            }
            if (firstCharIsDigit || firstChar == '+' || firstChar == '-') {
                try {
                    return parseAsNumber(token);
                } catch (NumberFormatException e) {
                    // can't parse as a number
                }
            }
            if (embedded) {
                throw new DataException("Failed to parse embedded value");
            }
            // At this point, the only thing this non-embedded value can be is a string.
            return new SchemaAndValue(Schema.STRING_SCHEMA, parser.original());
        }
Convert the specified value with the desired floating point type.

@param value  the value to be converted; may not be null
@param schema the schema for the current value type; may not be null
@param error  any previous error that should be included in an exception message; may be null
@return the double value after conversion; never null
@throws DataException if the value could not be converted to a double
connect/api/src/main/java/org/apache/kafka/connect/data/Values.java