static _toNumericValue(value, settings) {
        //XXX Note; this function is static since we need to pass a `settings` object when calling the static `AutoNumeric.format()` method
        let result;
        if (AutoNumericHelper.isNumber(Number(value))) { // if (settings.decimalCharacter === '.' && AutoNumericHelper.isNumber(Number(value))) {
            // The value has either already been stripped, or a 'real' javascript number is passed as a parameter
            if (!AutoNumericHelper.isNumberStrict(value)) {
                value = String(value).trim(); // cf. issue #721
            }
            result = AutoNumericHelper.scientificToDecimal(value);
        } else {
            // Else if it's a string that `Number()` cannot typecast, then we try to convert the localized numeric string to a numeric one
            // Convert the value to a numeric string, stripping unnecessary characters in the process
            result = this._convertToNumericString(value.toString(), settings);

            // If the result is still not a numeric string, then we throw a warning
            if (!AutoNumericHelper.isNumber(Number(result))) {
                AutoNumericHelper.warning(`The given value "${value}" cannot be converted to a numeric one and therefore cannot be used appropriately.`, settings.showWarnings);
                result = NaN;
            }
        }

        return result;
    }
Convert the `value` parameter that can either be :
- a real number,
- a number represented in the scientific notation (i.e. -123.4567e-6)
- a string representing a real number, or
- a string representing a localized number (with specific group separators and decimal character),
...to a string representing a real 'javascript' number (i.e. '1234' or '1234.567').

This function returns `NaN` if such conversion fails.

@param {int|float|string} value
@param {object} settings
@returns {string|NaN}