code: def FloatStringToFloat(float_string, problems=None):
    
    # Will raise TypeError unless a string
    match = re.match(r"^[+-]?\d+(\.\d+)?$", float_string)
    # Will raise TypeError if the string can't be parsed
    parsed_value = float(float_string)
  
    if "x" in float_string:
      # This is needed because Python 2.4 does not complain about float("0x20").
      # But it does complain about float("0b10"), so this should be enough.
      raise ValueError()
  
    if not match and problems is not None:
      # Does not match the regex, but it's a float according to Python
      problems.InvalidFloatValue(float_string)
    return parsed_value
docs: Convert a float as a string to a float or raise an exception